代码: #include<stdio.h> #include<string.h> #include<stdlib.h> #define MAXSIZE 1000 char res[MAXSIZE+1];//存放结果; char a[MAXSIZE],b[MAXSIZE];//存放两个加数; int len1,len2;//两个加数的长度; void init(char *a){//初始化字符数组; for(int i=0;i<MAXSIZE;i++){ a[i]='0';//全部置零; } } void longAdd(char *res,char *num){//两大数相加的函数; int i,j,len,c;//c表示进位; c=0; len=strlen(num); for(i=MAXSIZE-1,j=len-1;i>=0,j>=0;i--,j--){ int temp=res[i]-'0'+num[j]-'0'+c; c=temp/10; res[i]=temp%10+'0'; } while(c>0){ int temp=res[i]-'0'+c; c=temp/10; res[i]=temp%10+'0'; i--; } } void input(char *a,char *b){//输入两个大数的函数; printf("请输入两个大数:/n"); scanf("%s %s",a,b); len1=strlen(a); len2=strlen(b); int len=strlen(a); init(res); for(int i=0;i<len;i++) res[i+MAXSIZE-len]=a[i]; } int main(){ input(a,b); longAdd(res,b); int i,j; for(i=0;i<MAXSIZE;i++){ if(res[i]!='0')break; } for(j=i;j<MAXSIZE;j++){ printf("%c",res[j]); } printf("/n"); system("pause"); } 运行结果: