A+B题目

#include <iostream>
#include <stdlib.h>
#include<stdio.h>
#define  LEN  100
using  namespace  std;
int main(int argc, char *argv[])
{
   char  a[LEN],b[LEN],c[LEN];
   int  i,j,k,n,m,flag,p;
   cin>>n;
   for(p=1;p<=n;p++)
    { 
       cin>>a;
       cin>>b;
       i=strlen(a)-1;
       j=strlen(b)-1;
       k=0;
       flag=0;  用于判断进位标志
     while(i>=0&&j>=0)
            {
              m=a[i]+b[j]-96;
               if(m>=10)
               {
                  c[k]=m%10+48;
                  if(flag==1) c[k]+=1;  
                  flag=1;
               }
               else
               {
                c[k]=m+48;
                if(flag==1)  c[k]+=1;
             if(c[k]==58)  {c[k]='0'; flag=1;}  用于间加上进位后得到10时再进位计算
                 else flag=0;
                }
                k++;
                i--;
                j--;  
           
              } 
           if(i==0&&j==0&&flag==1)  c[k]=1;    ///记得加上最前的进位
      
     /*对于长度不同的两数相加,利用直接截取*/ 
       while(i>=0)
        c[k++]=a[i--];
       while(j>=0)
        c[k++]=b[j--]; 
       
        cout<<"case "<<p<<":"<<endl;
          cout<<a<<" + "<<b<<" = ";
          if(flag==1)  cout<<"1";   最前的进位记得输出!?
         for(i=k-1;i>=0;i--)
        cout<<c[i];
        cout<<endl;          
    }
   system("PAUSE"); 
  return 0;
}
 
忙了近小时,结果还白忙了,不符题,得用整数呢?
不过也算心血一桩,纪念下咯。/
 
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值