从键盘上输入任意一个整数x,编程计算x的每一位数字相加之和,用C语言编写,下面我编写的程序哪错了

例如,输入x为1234,则分离出1,2,3,4四个数字,然后计算1+2+3+4=10,并输出10,

#include <stdio.h>
#include <stdlib.h>
void main()
{
int n=0;
while("getchar()"!="\n")
{
n+=getchar();

}
printf("%d",n);
system("pause");
}

#include <stdio.h>
#include <stdlib.h>
void main()
{
int n=0,ch;
while((ch=getchar())!='\n')   //用ch保存getchar接收到的输入字符ascii码
{
    n+=(ch-'0');     //-'0' 是ascii码转数字

}
printf("%d",n);
system("pause");
}

55555
25请按任意键继续. . .
Press any key to continue

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-05
#include <stdio.h>
#include <stdlib.h>
void main()
{
int n=0;
char c[10] = {0};
while((c[0] = getchar())!='\n')//因为你getchar 获得的是char类型的 所以你必须转换为int 
{

n+=atoi(c);

}
printf("%d",n);
system("pause");
}

第2个回答  推荐于2018-03-14
#include <stdio.h>
#include <stdlib.h>
void main()
{
    int n=0,x;
    scanf("%d",&x);
    for(n=0;x;x/=10)
    {
        n+=x%10;
    }
    printf("%d",n);
    system("pause");
}

本回答被网友采纳
第3个回答  2013-07-05




#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n=0;
    char ch;

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

追问

ch-'0'是什么意思

追答

ch为char类型,假设是'6'ch-'0'等于6,也就是通常说的六.

本回答被提问者采纳
第4个回答  2013-07-05
#include<iostream>
using namespace std;
void main(){
int n;
int a;
int sum=0;
cin>>n;
while(n!=0){
a=n%10;
cout<<a<<endl;
sum+=a;
n/=10;
}
cout<<sum<<endl;
}
相似回答