100位要多改数组
/*大数相加小于100位*/
#include<stdio.h>
#include<math.h>
int main(void)
{
int a[100]={0},b[100]={0},c[101],tem[100];
int i=0,j,max=0,min=0,temp=0,num=0;
char ch;
/*clrscr();*/
printf("Please one num:\n");
while((ch=getchar())!='\n')
{a[max]=ch-48;
max++;}
printf("Please two num:\n");
while((ch=getchar())!='\n')
{b[min]=ch-48;
min++;}
if(max<min)
{
for(i=0;i<min;i++)
{
if(i<(min-max))
tem[i]=0;
else if(i>=(min-max))
{tem[i]=a[abs(min-max-i)];}
}
for(i=0;i<min;i++)
a[i]=tem[i];
max=min;
}
if(max>min)
{
for(i=0;i<max;i++)
{
if(i<(max-min))
tem[i]=0;
else if(i>=(max-min))
{tem[i]=b[abs(max-min-i)];}
}
for(i=0;i<max;i++)
b[i]=tem[i];
}
for(i=max-1;i>=0;i--)
{
if((a[i]+b[i])<10)
{ if(temp==1)
{
c[i+1]=(a[i]+b[i]+temp)%10;
if((a[i]+b[i]+temp)%10==0)
temp=1;
else
temp=0;
}
else
c[i+1]=a[i]+b[i]+temp;
}
else if(a[i]+b[i]>=10)
{
c[i+1]=(a[i]+b[i])%10+temp;
temp=(a[i]+b[i])/10;
}
}
if((a[0]+b[0])>=10)
{ c[0]=temp;
num=0;}
else
num=1;
printf("\n");
printf("Sum is Value :\n");
for(j=num;j<max+1;j++)
printf("%d",c[j]);
getch();
return 0;
}