注册 登录
编程论坛 C语言论坛

为什么总是报错???“undeclared identifier”求解???

七十 发布于 2020-04-29 19:11, 2062 次点击
# include<stdio.h>
int main(void)
{
    do
    {
    int a,b,c;
    char x;
    printf("输入三个数字(以空格间隔)\n");
    scanf("%d %d %d",&a,&b,&c);
   
    if(a>b && a>c)
        printf("%d\n",a);
    else if(b>a && b>c)
        printf("%d\n",b);
    else
        printf("%d\n",c);
    printf("是否继续?(Y/N)");
    scanf(" %c",&x);

    }
    while( x == 'y' );


    return 0;
}
4 回复
#2
纯蓝之刃2020-04-29 19:27
程序代码:
#include<stdio.h>

int main(void)
{
    int a,b,c;      //把变量拿出来
    char x;
    do
    {
        printf("输入三个数字(以空格间隔)\n");
        scanf("%d %d %d",&a,&b,&c);

        if(a>b && a>c)
            printf("%d\n",a);
        else if(b>a && b>c)
            printf("%d\n",b);
        else
            printf("%d\n",c);
        printf("是否继续?(Y/N)");
        scanf(" %c",&x);

    }
    while( x == 'y' );

    return 0;
}
#3
七十2020-04-29 21:06
回复 2楼 纯蓝之刃
搞明白了,谢谢
#4
lin51616782020-04-30 11:03
全部拿出来倒没什么必要 按照最小知识原则
abc 三个变量写在循环内部比写在循环外部更合适一些
搞清楚错误的原因
变量x 是 do-while 中间的复合语句{}这个作用域内部的变量
} 就结束
所以 while(这里使用x导致报错)
把 x 挪到 do-while 前面就可以了
#5
七十2020-05-01 13:09
回复 4楼 lin5161678
OK,明白了,谢谢
1