要注意数组的初始化
注意特殊情况的讨论(比如都是0)
厦大oj不能用语句 a=(a>b?:a,b); 会编译失败;
数组的界限 如a1是个数 却不是最大的下标
#include<stdio.h>
int main()
{
int a,b,n[15]={0},p[15]={0},q[15]={0},a1,b1;
int qushu(int x,int m[15]);
scanf("%d %d",&a,&b);
a1=qushu(a,p); //把a,b分离并记录位数
b1=qushu(b,q);
for(int i=0; i<a1||i<b1; i++)
{
n[i]=(p[i]+q[i])%10; //相加
}
if(a1<b1) a1=b1;
while(n[a1-1]==0)
{
a1--; //去除首位的0
if(a1==0) break;
}
if(a1==0) printf("0"); //对111+999这种特殊情况的讨论
else{
for(int i=a1-1; i>-1; i--)
{
printf("%d",n[i]);
}
}
return 0;
}
int qushu(int x,int m[15])
{
int i=0;
while(x>0)
{
m[i++]=x%10;
x/=10;
}
return i;
}