#include<stdio.h>
#include<string.h>
#include<math.h>
#define IndexMax 1002
char* puqi(char num[],int Lmax,int Lmin)
{
 int i;
 char c[IndexMax];
 for(i=0;i< Lmax;i++)
 {
  c[i]='0';
 }
  c[i]='\0';
  for(i=0;i<=Lmin;i++)
  {
   c[Lmax-i]=num[Lmin-i];
  }  
 return c;
}
int main()
{
 
//输入数据
 char a[IndexMax],b[IndexMax];
//补齐后的输入数据
 char ap[IndexMax],bp[IndexMax];
//逆序后的输入数据
 char a1[IndexMax],b1[IndexMax];
//计算结果
 char result[IndexMax];
 char * ca,*cb;
 int p = 0,q = 0;
 while(scanf("%s %s",&a[p++],&b[q++])!=EOF)//%s发现空白就终止,自动加'\0'
 {
  
  int i,j,la,lb,n,Lmax;
  la = strlen(a);
  lb = strlen(b);
  Lmax = la+1;
  if(Lmax<lb)
   Lmax=lb;
//第一步:补齐数据
 if(la>lb)
 {
  cb=puqi(b,la,lb);
  for(i=0;i<Lmax;i++)
  {
   bp[i] = *(cb+i);
   ap[i] = a[i];
  }
   ap[Lmax]='\0';
   bp[Lmax]='\0';
   n = strlen(bp);
 }
  
 if(la<lb)
 {
  ca=puqi(a,lb,la);
  for(i=0;i<Lmax;i++)
  {
   ap[i] = *(ca+i);
   bp[i] = b[i];
  }
   ap[Lmax]='\0';
   bp[Lmax]='\0';
   n = strlen(ap);
 }
 if(la == lb)
 for(i=0;i<Lmax;i++)
  {
   ap[i] = a[i];
   bp[i] = b[i];
   ap[Lmax]='\0';
   bp[Lmax]='\0';
   n = la;
  }
//第二步:逆序
 j=0;
 for(i=n-1;i>=0;i--)
 {
  a1[j] = ap[i];
  b1[j] = bp[i];
  j=j+1;
 }
 a1[j] = '\0';
 b1[j] = '\0';
//第三步:加法操作
 for(i=0;i<n;i++)
 {
  if((a1[i]+b1[i]-'0')>'9') 
  {
   result[i] = a1[i]+b1[i]-('9'+'1'-'0');
   b1[i+1] += ('1'-'0');
  }
  else
   result[i] = a1[i]+b1[i]-'0';
 }
//判断最高位是否进位
 if((a1[n-1]+b1[n-1]-'0')>'9')
 {
  result[n] = '1';
  result[n+1] = '\0';
 }
 else
  result[n] = '\0';
 n = strlen(result); 
//第四步:逆序输出结果
 for(i=n-1;i>=0;i--)
 {
  printf("%c",result[i]);
 }
 printf("\n");
 p=0;q=0;
}

    return 0;
}

 

点赞(2)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论