-6
if (choice==1)

     for(i=0;i<r;i++){
        for(j=0;j<c;j++)
        masivs[i][j]=rand();
        printf("Sakummasivs: \n");
            for(i=0;i<r;i++)
            {
            for(j=0;j<c;j++)
            printf("%7d", masivs[i][j]);
            printf("\n");
            }
      else if (choice==2)
      { 
       printf("Ievadiet skaitlus\n");

        for(i=0;i<r;i++){
        for(j=0;j<c;j++)
        {
        masivs[i][j]=choice;
        }
        }
        else 
        for(i=0;i<r;i++){
        for(j=0;j<c;j++)
        masivs[i][j]=rand();
        printf("Sakummasivs: \n");
            for(i=0;i<r;i++)
            {
            for(j=0;j<c;j++)
            printf("%7d", masivs[i][j]);
            printf("\n");
            }

错误在这一行,但我不明白为什么

else if (choice==2)
4

3 回答 3

2

这个for循环

 for(i=0;i<r;i++){

需要一个右大括号。

如果您使用一致的缩进,这将是显而易见的。

于 2013-10-02T18:09:51.513 回答
0

首先,我建议使用 C-pretty 打印机。然后你可能想在逻辑上需要的地方撒上左右大括号。一种猜测如下,删除大括号前缀的“//”注释。

if (choice==1)
//{
    for(i=0;i<r;i++){
        for(j=0;j<c;j++)
            masivs[i][j]=rand();
        printf("Sakummasivs: \n");
        for(i=0;i<r;i++)
        {
            for(j=0;j<c;j++)
                printf("%7d", masivs[i][j]);
            printf("\n");
        }
    //}
//}
else if (choice==2)
{ 
    printf("Ievadiet skaitlus\n");

    for(i=0;i<r;i++){
        for(j=0;j<c;j++)
        {
            masivs[i][j]=choice;
        }
    }
    else
    //{
        for(i=0;i<r;i++){
            for(j=0;j<c;j++)
                masivs[i][j]=rand();
            printf("Sakummasivs: \n");
            for(i=0;i<r;i++)
            {
                for(j=0;j<c;j++)
                    printf("%7d", masivs[i][j]);
                printf("\n");
            }
        //}
    //}
//}

像这样,这在语法上是正确的,但在语义上可能不正确。

if (choice==1)
{ 
    for(i=0;i<r;i++){
        for(j=0;j<c;j++)
            masivs[i][j]=rand();
        printf("Sakummasivs: \n");
        for(i=0;i<r;i++)
        {
            for(j=0;j<c;j++)
                printf("%7d", masivs[i][j]);
            printf("\n");
        }
    } 
} 
else if (choice==2)
{ 
    printf("Ievadiet skaitlus\n");

    for(i=0;i<r;i++){
        for(j=0;j<c;j++)
        {
            masivs[i][j]=choice;
        }
    }
    else
    { 
        for(i=0;i<r;i++){
            for(j=0;j<c;j++)
                masivs[i][j]=rand();
            printf("Sakummasivs: \n");
            for(i=0;i<r;i++)
            {
                for(j=0;j<c;j++)
                    printf("%7d", masivs[i][j]);
                printf("\n");
            }
        } 
    } 
} 
于 2013-10-03T08:24:20.020 回答
0

范围由{}事项定义:

if (choice==1)
    for(i=0;i<r;i++) {
        ...
        for(i=0;i<r;i++)
        {
            ...
        }
else if (choice==2)
    ...
    }

应该:

if (choice==1) {
    for(i=0;i<r;i++) {
        ...
        for(i=0;i<r;i++)
        {
            ...
        }
    }
}
else if (choice==2) {
    ...
}
于 2013-10-02T18:10:26.510 回答