大数相加(C语言)

来源:互联网 发布:c 仿ce源码 编辑:程序博客网 时间:2024/05/17 13:46

#define N 100
#include "stdio.h"
#include "string.h"
main()
{
 char a[N],b[N];
 int a1[N]={0},b1[N]={0},c[N]={0};
 int i,j,k,n,m,x;
 printf("输入数据a:/n");
 gets(a);
 n=strlen(a);
 printf("输入数据b:/n");
 gets(b);
 m=strlen(b);
 for(i=n-1;i>=0;i--)
  a1[n-1-i]=a[i]-'0';
 for(j=m-1;j>=0;j--)
  b1[m-1-j]=b[j]-'0';
 if(m==n)
  k=n;
 else if(m>n)
  k=m;
 else
  k=n;
 for(i=0;i<k;i++)
  c[i]=a1[i]+b1[i];
 for(i=0;i<k;i++)/*调整进位*/
 {
  x=c[i]/10;
  c[i+1]=c[i+1]+x;
  c[i]=c[i]%10;
 }
 if(c[k]!=0)
  printf("%d",c[k]);
 for(i=k-1;i>=0;i--)
  printf("%d",c[i]);
 printf("/n");
}