一锤定音官网报名方式:C语言程序题!!!

来源:百度文库 编辑:神马品牌网 时间:2024/05/03 02:08:28
题目:连续输进去一些数(遇到0退去),如输进去24,把它的个十位分开,加起来为6;
如输进去十39,它的个十位相加为12,然后继续把它的个十位分开,直到加起来为一个个位数为止

谢谢做一下!!
不是只有两位啊,题目是要求输入一些数,没说直接把个十位分开

#include<stdio.h>

int ss(int num)
{
int sum=0;
while(num) {sum+=num%10 ; num/=10 ; }
return sum;
}

int main()
{
int n;
while(scanf("%d",&n)==1 && n)
{
while(n >= 10)
n=ss(n);
printf("%d\n",n);
}

}

自己测试一下
#include<stdio.h>

int convert(int x)
{return(x-'0');
}

int plus(int x)
{int s;
for(s=0;x!=0;)
{s+=x%10;
x=x/10;
if(s>=10) s=plus(s);
}
return s;
}

void main()
{char ch[100];
int i,s;
for(i=0;(*(ch+i-1)!='0')&&(*(ch+i-1)!='\n');i++)
scanf("%c",ch+i);
s=0;
for(i=0;(*(ch+i)!='0')&&(*(ch+i)!='\n');i++)
s+=convert(ch[i]);
s=plus(s);
printf("s=%d",s);
getch();
}

既然一直都是把个十位分开应该一开始就要求输入两位数吧?