简单的c语言题目

输入一个整数,求出它每个位数数字的和,如输入1234输出1+2+3+4的值。数值一大我就不知道怎么计算,像213474632817712这些。求大神解答,代码务必简单,谢... 输入一个整数,求出它每个位数数字的和,如输入1234 输出1+2+3+4的值。数值一大我就不知道怎么计算,像213474632817712这些。求大神解答,代码务必简单,谢了,我只是大一刚刚接触,c语言, 展开
 我来答
百度网友af79543cb
2013-11-18 · 超过12用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:34.2万
展开全部
#include <stdio.h>

int main()
{
    char sz[100] = {0};    // 用于储存待计算的数字
    scanf("%s", sz);
    
    int sum = 0;
    for (int i = 0; sz[i] != '\0'; i++)    // 处理每一位数字,直到遇到字符串尾
        sum += sz[i] - '0';    // 将当前位上的字符转为整数。如'5',经过处理后得到'5' - '0' = 5
        
    printf("%d", sum);
    
    return 0;
}

还有一个更数学一些的方法,但不能用于太大的输入:

#include <stdio.h>

int main()
{
    unsigned long long n = 0;    // 用于储存待计算的数字
    scanf("%llu", &n);
    
    int sum = 0;
    
    // 循环内算法其实很简单,就是取n的个位数加到sum上,然后截掉n的个位。重复到所有位都处理过为止。
    while (n > 0) {
        sum += n % 10;
        n /= 10;
    }
        
    printf("%d", sum);
    
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e438bc3
2013-11-18 · TA获得超过197个赞
知道小有建树答主
回答量:146
采纳率:100%
帮助的人:115万
展开全部
#include <stdio.h>
#include <stdlib.h>
void main()
{
char num[100];
int i=0,sum=0;
char n='0';
n=getchar();
while(n!='\n')
{
sum += n-'0';
n = getchar();
}
printf("SUM: %d\n",sum);
}

这个应该可以满足要求,要严谨的话最好加上输入判断
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式