数字求和
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;
}
}