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;
}
 
忙了近小時,結果還白忙了,不符題,得用整數呢?
不過也算心血一樁,紀念下咯。/
 
 
發佈了45 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章