解题思路:
1.小方给大家提供的方法是直接将用户输入的数字当字符串看的,希望大家能够理解。

参考代码:

#include<stdio.h>
#include<string.h>
int main()
{
    int size,sum,i;
    char a[11];
    while(scanf("%s",a)!=EOF)
    {
        sum=0;
        size=strlen(a);                            //可那用户输入的数的长度是多少位的
        for(i=0;i<size;i++)                        //用其减去其acsii就可以将字符数转换为真正的数
        {
            sum+=a[i]-'0';                         //依次相加
        }
         printf("%d\n",sum);                       //输出
    }
    return 0;
}


点赞(9)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 13 条评论

陈雨斌 7年前 回复TA
# include <stdio.h>
int main (void)
{
	int i , n , m , tom = 0;
	scanf ("%d" , &n);
	do {
	if (n < 0)
		return 0;
	else
	{
		tom = 0 ;
		m = n;
		while (m)
		{
			tom += m%10 ;
			m /= 10;
		}
		printf ("%d\n" , tom);
	//	scanf ("%d" , &n);
	}
	}while (scanf ("%d" , &n)  == 1);


	return 0;
}

这个程序有什么问题吗
Mister-小方 7年前 回复TA
@ET 可以可以,我没看怎么多
ET 7年前 回复TA
题里范围给的是——每行一个整数(<2^32).最大是十位数
所以char a[1000];不用这么大,,,char a[11];就够了