小学生算术

来源:互联网 发布:卓讯数据库打开 编辑:程序博客网 时间:2024/06/11 13:26
小学生算术

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

 
输入
输入两个正整数m,n.(m,n,都是三位数)
输出
输出m,n,相加时需要进位多少次。
样例输入
123 456555 555123 5940 0
样例输出
03 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;
}

0 0
原创粉丝点击