首页 > 关于C语言getchar()

关于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);
    }

如上面所说,是运算符优先级问题。
还有就是加上return 0


试试

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

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

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

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

【热门文章】
【热门文章】