您的位置:首页 > 其它

小学生算术

2014-03-09 08:35 148 查看
小学生算术

很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。


输入输入两个正整数m,n.(m,n,都是三位数)输出输出m,n,相加时需要进位多少次。样例输入
123 456
555 555
123 594
0 0

样例输出
0
3 
1


#include<stdio.h>

int main()

{

int m,n,b,s;

while(scanf("%d %d",&m,&n),m!=0&&n!=0)

{

int t=0;

if((m%10+n%10)>9)

{

t++;

s=m/10%10+n/10%10+1;

if(s>9)

{

t++;

b=m/100+n/100+1;

if(b>9)

t++;

}

else

{

b=m/100+n/100;

if(b>9)

t++;

}

}

else

{

s=m/10%10+n/10%10;

if(s>9)

{

t++;

b=m/100+n/100+1;

if(b>9)

t++;

}

else

{

b=m/100+n/100;

if(b>9)

t++;

}

}



printf("%d\n",t);

}

return 0;

}

这是简化后的代码:

#include<stdio.h>

int main(){

int a,b,c,m,n,t;

while(scanf("%d %d",&m,&n),m&&n){

t=0;

a=m%10+n%10;

b=m/10%10+n/10%10;

c=m/100+n/100;

if(a>9){

t++;

b++;

}

if(b>9){

t++;

c++;

}

if(c>9){

t++;

}

printf("%d\n",t);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: