#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
int i,j,z,k,s,n[100],m[100],t[100];
char a[100],b[100];
printf("input a=");
gets(a);
printf("input b=");
gets(b);
for(i=0;i<=strlen(a)-1;i++)
{
if(a[i]=='0')
n[i]=0;
else if(a[i]=='1')
n[i]=1;
else if(a[i]=='2')
n[i]=2;
else if(a[i]=='3')
n[i]=3;
else if(a[i]=='4')
n[i]=4;
else if(a[i]=='5')
n[i]=5;
else if(a[i]=='6')
n[i]=6;
else if(a[i]=='7')
n[i]=7;
else if(a[i]=='8')
n[i]=8;
else n[i]=9;
}
for(i=0;i<=strlen(b)-1;i++)
{
if(b[i]=='0')
m[i]=0;
else if(b[i]=='1')
m[i]=1;
else if(b[i]=='2')
m[i]=2;
else if(b[i]=='3')
m[i]=3;
else if(b[i]=='4')
m[i]=4;
else if(b[i]=='5')
m[i]=5;
else if(b[i]=='6')
m[i]=6;
else if(b[i]=='7')
m[i]=7;
else if(b[i]=='8')
m[i]=8;
else m[i]=9;
}
for(i=0;i<=strlen(a)-1;i++)
t[i+1]=n[i];
if(strlen(a)>strlen(b))
{
for(i=strlen(a)-1,j=strlen(b)-1;j>=0;i--,j--)
{
if((n[i]+m[j])<10)
n[i]=n[i]+m[j];
else
{
k=n[i]+m[j];
n[i]=(n[i]+m[j])%10;
n[i-1]=n[i-1]+k/10;
}
}
if(n[strlen(a)-strlen(b)-1]>=10)
{
s=n[strlen(a)-strlen(b)-1];
n[strlen(a)-strlen(b)-1]=n[strlen(a)-strlen(b)-1]%10;
n[strlen(a)-strlen(b)-2]=n[strlen(a)-strlen(b)-2]+s/10;
}
printf("a+b=");
for(i=0;i<=strlen(a)-1;i++)
printf("%d",n[i]);
printf("\n");
}
else if(strlen(a)<strlen(b))
{
for(i=strlen(a)-1,j=strlen(b)-1;i>=0;i--,j--)
{
if((n[i]+m[j])<10)
m[j]=n[i]+m[j];
else
{
k=n[i]+m[j];
m[j]=(n[i]+m[j])%10;
m[j-1]=m[j-1]+k/10;
}
}
if(m[strlen(b)-strlen(a)-1]>=10)
{
s=m[strlen(b)-strlen(a)-1];
m[strlen(b)-strlen(a)-1]=m[strlen(b)-strlen(a)-1]%10;
m[strlen(a)-strlen(b)-2]=m[strlen(a)-strlen(b)-2]+s/10;
}
printf("a+b=");
for(i=0;i<=strlen(b)-1;i++)
printf("%d",m[i]);
printf("\n");
}
else
{
for(j=strlen(b)-1,z=strlen(a);j>=0;j--,z--)
{
if((t[z]+m[j])<10)
t[z]=t[z]+m[j];
else
{
k=t[z]+m[j];
t[z]=(t[z]+m[j])%10;
t[z-1]=t[z-1]+k/10;
}
}
printf("a+b=");
if(t[0]==1)
{
for(i=0;i<=strlen(a);i++)
printf("%d",t[i]);
}
else
{
for(i=1;i<=strlen(a);i++)
printf("%d",t[i]);
}
printf("\n");
}
system("pause");
}
现在这个可以了,是用数组处理的,楼主可以参考下
#include<stdlib.h>
#include<string.h>
main()
{
int i,j,z,k,s,n[100],m[100],t[100];
char a[100],b[100];
printf("input a=");
gets(a);
printf("input b=");
gets(b);
for(i=0;i<=strlen(a)-1;i++)
{
if(a[i]=='0')
n[i]=0;
else if(a[i]=='1')
n[i]=1;
else if(a[i]=='2')
n[i]=2;
else if(a[i]=='3')
n[i]=3;
else if(a[i]=='4')
n[i]=4;
else if(a[i]=='5')
n[i]=5;
else if(a[i]=='6')
n[i]=6;
else if(a[i]=='7')
n[i]=7;
else if(a[i]=='8')
n[i]=8;
else n[i]=9;
}
for(i=0;i<=strlen(b)-1;i++)
{
if(b[i]=='0')
m[i]=0;
else if(b[i]=='1')
m[i]=1;
else if(b[i]=='2')
m[i]=2;
else if(b[i]=='3')
m[i]=3;
else if(b[i]=='4')
m[i]=4;
else if(b[i]=='5')
m[i]=5;
else if(b[i]=='6')
m[i]=6;
else if(b[i]=='7')
m[i]=7;
else if(b[i]=='8')
m[i]=8;
else m[i]=9;
}
for(i=0;i<=strlen(a)-1;i++)
t[i+1]=n[i];
if(strlen(a)>strlen(b))
{
for(i=strlen(a)-1,j=strlen(b)-1;j>=0;i--,j--)
{
if((n[i]+m[j])<10)
n[i]=n[i]+m[j];
else
{
k=n[i]+m[j];
n[i]=(n[i]+m[j])%10;
n[i-1]=n[i-1]+k/10;
}
}
if(n[strlen(a)-strlen(b)-1]>=10)
{
s=n[strlen(a)-strlen(b)-1];
n[strlen(a)-strlen(b)-1]=n[strlen(a)-strlen(b)-1]%10;
n[strlen(a)-strlen(b)-2]=n[strlen(a)-strlen(b)-2]+s/10;
}
printf("a+b=");
for(i=0;i<=strlen(a)-1;i++)
printf("%d",n[i]);
printf("\n");
}
else if(strlen(a)<strlen(b))
{
for(i=strlen(a)-1,j=strlen(b)-1;i>=0;i--,j--)
{
if((n[i]+m[j])<10)
m[j]=n[i]+m[j];
else
{
k=n[i]+m[j];
m[j]=(n[i]+m[j])%10;
m[j-1]=m[j-1]+k/10;
}
}
if(m[strlen(b)-strlen(a)-1]>=10)
{
s=m[strlen(b)-strlen(a)-1];
m[strlen(b)-strlen(a)-1]=m[strlen(b)-strlen(a)-1]%10;
m[strlen(a)-strlen(b)-2]=m[strlen(a)-strlen(b)-2]+s/10;
}
printf("a+b=");
for(i=0;i<=strlen(b)-1;i++)
printf("%d",m[i]);
printf("\n");
}
else
{
for(j=strlen(b)-1,z=strlen(a);j>=0;j--,z--)
{
if((t[z]+m[j])<10)
t[z]=t[z]+m[j];
else
{
k=t[z]+m[j];
t[z]=(t[z]+m[j])%10;
t[z-1]=t[z-1]+k/10;
}
}
printf("a+b=");
if(t[0]==1)
{
for(i=0;i<=strlen(a);i++)
printf("%d",t[i]);
}
else
{
for(i=1;i<=strlen(a);i++)
printf("%d",t[i]);
}
printf("\n");
}
system("pause");
}
现在这个可以了,是用数组处理的,楼主可以参考下