关于C语言getchar()


两段代码需要实现的功能都是输入一个数字,输出这个数字每位之和。
但是第二段代码为什么实现不了呢?


 #include<stdio.h>
int main(){
    char c;
    int sum=0;
    while(1)
    {   c=getchar();
        if(c=='\n') break;
        sum=sum+(c-'0');
    };

    printf("%d",sum);
}


 #include<stdio.h>
int main(){
    char c;
    int sum=0;

    while(c=getchar()!='\n')
    {   
        sum=sum+(c-'0');
        printf("%d\n",c);
    };
    printf("%d",sum);
    }

c c语言

豇豆豆豆豆豆豆 9 years, 9 months ago

支持楼上的写法,同时给个建议。在写复合语句时如果对优先级不太确定,最好加上括号~

栖于禅寺的妖蝶 answered 9 years, 9 months ago

试试


 while((c=getchar())!='\n')

运算符优先级的问题,你之前的程序顺序为


 while(c=(getchar())!='\n'))

御坂16016 answered 9 years, 9 months ago

Your Answer