c语言,求一个数每一位的数之和

不知道错在哪,看一看,谢谢
#include
int main()
{
int i,n,x,sum,count,a;
scanf("%d",&x);
count=0;
while(x!=0)
{
x/=10;
count++;
}
sum=0;
for(n=1;n<=count;n++)
{
a=pow(10,n-1);
i=x/a%10;
sum=sum+i;
}
printf("%d",sum);
return 0;
}

while循环中x值都已经被你修改了啊,后面当然不行了
就你现在的代码,在第一个while循环前,重新定义一个变量等于x,然后在while中用新变量进行处理
另外你的代码太麻烦,用求余就好了啊

#include <stdio.h>
int main()
{
    int x = 0,sum = 0;
    scanf("%d",&x);
    while(x!=0)
    {
        sum += x%10;
        x = x/10;
    }
    printf("%d",sum);
}

修改如下,供参考:

#include <stdio.h>
int main()
{
    int i, n, x, sum, count, a;
    scanf("%d", &x);
    count = 0;sum = 0;
    while (x != 0)
    {
        sum += x % 10;
        x /= 10;
        //count++;
    }
    
    //for (n = 1; n <= count; n++)
    //{
    //    a = pow(10, n - 1);
    //    i = x / a % 10;
    //    sum = sum + i;
    //}
    printf("%d", sum);
    return 0;
}

#include
#include
using namespace std;
int main()
{
int i,n,x,sum,count,a;
scanf("%d",&x);
while(x!=0)
{
sum+=x%10;
x/=10;
}
printf("%d",sum);
return 0;
}

差点被你的逻辑忽悠了~~~


#include <stdio.h>
int main()
{
    int x = 0,sum = 0;
    scanf("%d",&x);
    while(x!=0)
    {
        sum += x%10;
        x = x/10;
    }
    printf("%d",sum);
}
 
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^