在“其他”之前预期的初级表达

时间:2013-10-02 18:06:28

标签: c arrays

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)

3 个答案:

答案 0 :(得分:2)

这个for循环

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

需要一个闭合支撑。

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

答案 1 :(得分: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) {
    ...
}

答案 2 :(得分: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");
            }
        } 
    } 
}