我的处女作,奉上刚刚写会的大数加法。
#include <stdio.h>#include <stdlib.h>
#include <string.h>
int main()
{
char s[1000];
int a[1000]={0};
int i,j,max=0;
while (scanf("%s",s),strcmp(s,"0"))//输入大数,输入0结束。
{
max=max>strlen(s)?max:strlen(s);//把较大值赋给max
for (i=strlen(s)-1,j;i>=0;i--)
{
a[strlen(s)-1-i]+=s[i]-'0';//把个位、十位。。。。等位置的数累加,并且逆序。
}
}
for (i=0;i<max+10;i++)//如果累加的数大于10,要往前进位。
{
if (a[i]>9)
{
a[i+1]+=a[i]/10;
a[i]%=10;
}
}
for (i=max+10;i>=0;i--)//去前导零。
if (a[i]!=0)
break;
for (j=i;j>=0;j--)
printf("%d",a[j]);
printf("\n");
return 0;
}