您的位置:首页 > 其它

杭电 1002 大数相加

2016-05-07 09:46 239 查看
题意不多说。

主要是对于每一个都要字符串细细考虑。

#include<stdio.h>
#include<string.h>
#define M 1000005
char a[M],b[M],c[M];
int main()
{
int N,j = 1;
scanf("%d",&N);
while(N)
{
scanf("%s%s",&a,&b);
printf("Case %d:\n",j++);
printf("%s + %s = ",a,b);
int i,m,n,p = 0;
m = strlen(a) - 1; //易错点
n = strlen(b) - 1;
for(i = 0;m >= 0 || n >= 0;m--,n--,i++)
{
if(m >= 0 && n >= 0) c[i] = a[m] + b
- 48 + p;
if(m >= 0 && n < 0)  c[i] = a[m] + p;
if(m < 0 && n >= 0)  c[i] = b
+ p;
p = 0;
if(c[i] > '9')
{
p = 1;
c[i] = c[i] -10;
}
}
if(p == 1)
printf("1");//不可少
for(i --; i >= 0;i--)
printf("%c",c[i]);
printf("\n");
if(N != 1)
printf("\n");
N--;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  杭电