Manchester


私信TA

用户名:wenyajie

访问量:313886

签 名:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

等  级
排  名 1
经  验 62896
参赛次数 1
文章发表 188
年  龄 0
在职情况 学生
学  校 Xiamen University
专  业 计算机科学

  自我简介:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

解题思路:
输入一个整数;

求出每一位相加的和;


注意事项:
输入的整数小于2^32-1:不能时int型(2^31 -1) ,要比它长,用unsigned int等比它长的;
不要把问题想的太复杂,这题就是考察长整型变量,不要用字符串存数,控制不恰当的话,输出,会提示输出超过范围;

参考代码:

#include <stdio.h>
#include <string.h>
void put();


int        TOM    = 0;
unsigned int    num    = 0;
/*-------------------------*/
int main()
{
    while ( (scanf( "%d", &num ) ) != EOF )
    {
        put();
    }
}


/*-------------------------*/
void put()
{
    TOM = 0;
    while ( (num / 10) != 0 )
    {
        TOM    += (num % 10);
        num    /= 10;
    }
    TOM += num;

    printf( "%d\n", TOM );
}

 

0.0分

2 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

为什么输入超过10位数字,结果就不对呢?
2019-03-20 22:37:08
#include<stdio.h>
void put(long num)
{
	int tom;
	tom=0;
	while((num/10)!=0)
	{
		tom+=(num%10);
		num/=10;
	}
	tom+=num;
	printf("%d\n",tom);
}

int main(){
	int tom=0;
	long num=0;
	while((scanf("%d",&num))!=EOF)
	{
		put(num);
	}
	
     return 0;
}
2019-03-14 23:51:08
#include <stdio.h>
int main()
{
	unsigned int a;
	int tom = 0;
	
	while((scanf("%d", &a)) != EOF)
	{
		for(tom = 0; a / 10 != 0;)
		{
			tom += a%10;
			a /= 10;
		}
		tom += a;
		printf("%d\n", tom);	
	}
		
	return 0;
}
2019-01-31 12:59:25
错的!!
2018-11-26 20:21:01
  • «
  • 1
  • »