数字求和

Description
输入一个整数,求它的各位数字之和及位数。例如-234的各位数字之和是9,位数是3.

Input
输入一个整数n

Output
求它的各位数字之和及位数,注意处理数字0哦。

Sample Input
-234
12345
Sample Output
9 3
15 5

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

int chartonum(char c);
int main(int argc, char *argv[]) {
	char a[100];
	while(gets(a)!=NULL){
		int sum=0;
		int i;
		int count;
		//负数 
		if(a[0]=='-')
		{	count=strlen(a)-1;
			for(i=1;a[i]!='\0';i++){
				
				sum+=chartonum(a[i]);
				
			}
		
		}
		//非负数 
		else{
			count=strlen(a);
			//0
			if(a[0]=='0')	
			{	
				printf("0 1\n");
				continue;
			}
			//正整数 
			else{
				for(i=0;a[i]!='\0';i++){
					sum+=chartonum(a[i]);
				}
			}
		}
		
		printf("%d %d\n",abs(sum),count);
	} 
	return 0;
}
//字符转换数字的函数 
int chartonum(char c){
	switch (c)
{
		case '0':return 0;
		case '1':return 1;
		case '2':return 2;
		case '3':return 3;
		case '4':return 4;
		case '5':return 5;
		case '6':return 6;
		case '7':return 7;
		case '8':return 8;
		case '9':return 9;
}	

}
全部评论

相关推荐

10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务