关于C语言getchar()-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

关于C语言getchar()

a123456678 2016-06-07 19:58:52 1243

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

#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语言
分享到
取消 提交回答
全部回答(5)
  • 一生有你llx
    2019-07-17 19:30:55

    第二个输入后循环直接退出了,没有进循环里呀

    0 0
  • 大锴
    2019-07-17 19:30:55

    Image
    请参阅运算符优先级,!= 的优先级比 = 高,所以第二个将会导致while的判断条件从右往左算,即后面的始终值都为true,执行的始终是:while(c=1){sum += 1-48;}

    0 0
  • xumaojun
    2019-07-17 19:30:55

    第二个输入后循环直接退出了,没有进循环里呀

    0 0
  • nothingfinal
    2019-07-17 19:30:55

    第二个输入后循环直接退出了,没有进循环里呀

    0 0
  • a123456678
    2019-07-17 19:30:55
    while((c=getchar())!='\n')
    1 0
添加回答

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题