题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1002
#include <stdio.h> #include <string.h> #define MAX 1010 char a[MAX],b[MAX]; int main() { int n,i,j,length,jinwei=0; int flag; char temp; scanf("%d",&n); for(i=0;i<n;i++) { if(scanf("%s%s",a,b)==2) { printf("Case %d:\n",i+1); printf("%s + %s = ",a,b); length = strlen(a); for(j=0;j<length/2;j++) { temp = a[j]; a[j] = a[length-1-j]; a[length-1-j]=temp; } length = strlen(b); for(j=0;j<length/2;j++) { temp = b[j]; b[j] = b[length-1-j]; b[length-1-j]=temp; } length = strlen(a)>strlen(b)? strlen(a):strlen(b); for(j=0;j<length || jinwei;j++) { if(!a[j]) a[j]='0'; if(!b[j]) b[j]='0'; a[j] = a[j]+b[j]-'0'*2+jinwei; jinwei = a[j]/10; a[j] %= 10; } flag=0; for(j=MAX-1;j>=0;j--) { if(a[j]||flag) { printf("%d",a[j]); flag=1; } } printf("\n"); if(i!=(n-1)) printf("\n"); /*更改时间2013.3.8 23:04 添加上下面两行就ac了*/ memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); } } return 0; }
PS:这个是我写的程序,但是老是wrong answer,自己反复测也没问题,先在这里mark一下
第二次更改时间2013.3.8 23:04 添加上下面两行就ac了
memset(a,0,sizeof(a)); memset(b,0,sizeof(b));大概原因是 杭电要求连续输入,所以每次测试结束后,将每个数组复位。