题目如下:
小学生数学
很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。
你编制的程序应当可以连续处理多组数据,
直到读到两个0(这是输入结束标记)。
输入
输入两个正整数m,n.(m,n,都是三位数)
输出
输出m,n,相加时需要进位多少次。
样例输入
123 456
555 555
123 594
0 0
样例输出
0
3
1
这是我写的:
#include<stdio.h>
int main()
{
int n,m;
while(scanf("%d%d",&m,&n)&&(m||n))
{
if(m >999 || n >999 || m < 100 || n<100)
{
return 0;
}
int i,j,k,a,b,c;
i = m%10;
j = m/10%10;
k = m/100;
a = n%10;
b = n/10%10;
c = n/100;
int x=0,y=0,z=0;
if(i+a >= 10)
{
x = 1;
}
if(j+b >=10)
{
y = 1;
}
if(k+c >=10)
{
z = 1;
}
printf("%d\n",x+y+z);
}
return 0;
}
这是AC的(我的错了!):
#include<stdio.h>
int main(){
int a, b;
while (scanf("%d%d", &a, &b), a || b){
int c = a + b;
int cnt = 0;
if ((a / 10 % 10 + b / 10 % 10) % 10 != c / 10 % 10)
cnt++;
if ((a / 100 + b / 100) % 10 != c / 100 % 10)
cnt++;
if (c / 1000 != 0)
cnt++;
printf("%d\n", cnt);
}
return 0;
}
我就想知道我的哪里不正确!