首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于杭电OJ 1002的研讨

2013-10-24 
关于杭电OJ 1002的探讨首先 我是一个菜鸟,这个问题我是参考AC过的代码,然后自己写出来的。运行的结果都是OK

关于杭电OJ 1002的探讨
首先 我是一个菜鸟,
这个问题我是参考AC过的代码,然后自己写出来的。运行的结果都是OK的,但是提交的时候就报错。
#include<stdio.h>
#include<string.h>
int main(void)
{
int a[1005],b[1005];
char s1[1005],s2[1005];
int c,i,j,k,N;
scanf("%d",&N);
for(c = 1;c < N;c++)
{
scanf("%s%s",s1,s2);
for(i = 0;i < 1005;i++)
a[i] = b[i] = 0;
k = strlen(s1);
for(i = k-1,j = 0;i >= 0;i--)
a[j++] = s1[i] - '0';
k = strlen(s2);
for(i = k-1,j = 0;i >= 0;i--)
b[j++] = s2[i] - '0';
k = (strlen(s2) > strlen(s1))? strlen(s2):strlen(s1);
for(i = 0;i < k;i++)
a[i] = a[i] + b[i];
for(i = 1;i <= k;i++)
{
a[i] = a[i] + a[i-1]/10;
a[i-1] = a[i-1]%10;
}
if(a[k] != 0) k++;
printf("case %d:\n",c);
printf("%s + %s =",s1,s2);
for(i = k-1;i >= 0;i--)
printf("%d",a[i]);
printf("\n\n");
}
scanf("%s%s",s1,s2);
for(i = 0;i < 1005;i++)
a[i] = b[i] = 0;
k = strlen(s1);
for(i = k-1,j = 0;i >= 0;i--)
a[j++] = s1[i] - '0';
k = strlen(s2);
for(i = k-1,j = 0;i >= 0;i--)
b[j++] = s2[i] - '0';
k = (strlen(s2) > strlen(s1))? strlen(s2):strlen(s1);
for(i = 0;i < k;i++)
a[i] = a[i] + b[i];
for(i = 1;i <= k;i++)
{
a[i] = a[i] + a[i-1]/10;
a[i-1] = a[i-1]%10;
}
if(a[k] != 0) k++;
printf("case %d:\n",c);
printf("%s + %s =",s1,s2);
for(i = k-1;i >= 0;i--)
printf("%d",a[i]);
printf("\n");
return 0;

}
这个代码就是先把数字放在字符串,然后把每个数字放在数组中  然后进行加法运算。
我的问题是:为什么要报错啊~!!!!!!!!麻烦了。
[解决办法]
格式不对要报错.请修改以下4行:


    printf("Case %d:\n",c);//printf("case %d:\n",c);
    printf("%s + %s = ",s1,s2);//printf("%s + %s =",s1,s2);

  printf("Case %d:\n",c);//printf("case %d:\n",c);
  printf("%s + %s = ",s1,s2);//printf("%s + %s =",s1,s2);

热点排行