#include<stdio.h> #include<string.h> int main() { char a[100],b[100]; int c[101]; int stra,strb; gets(a); gets(b); stra=strlen(a);//得到a的长度 strb=strlen(b);//得到b的长度 int m=stra-1;//得到a的最后一个元素的序号 int n=strb-1;//得到b的最后一个元素的序号 int p=0;//最大数相加要么是10-20要么0-10,所以p具有标记作用! for(int i=0;m>=0||n>=0;i++,m--,n--) { if(m>=0&&n>=0) { c[i]=a[m]+b[n]-2*'0'+p;//得到a[m],b[n]的实际数字,相加再存入整型数组c[i]中 } else if(m>=0&&n<0) { c[i]=a[m]-'0'+p; } else if(n>=0&&m<0) { c[i]=b[n]-'0'+p; } p=0; if(c[i]>9) { c[i]=c[i]-10;p=1; } } if(p==1) { printf("%d",1);//这是当左后一次相加大于10的情况下进一位! } while(i--) { printf("%d",c[i]); } return 0; }