杭电ACM1002 这两个程序差别在哪啊,简直一模一样,可是我写的不能AC,不知道为什么

这是我写的程序,不能AC#include<stdio.h>#include<string.h>intmain(){chara[1001],b[1001];intn,la,... 这是我写的程序,不能AC
#include<stdio.h>
#include<string.h>
int main()
{
char a[1001],b[1001];
int n,la,lb,j,lmax,k,num=1;
scanf("%d",&n);
getchar();
while(n--)
//for(i=1;i<=n;i++)
{
int c[1001]={0},d[1001]={0},e[1001]={0};
scanf("%s",a);
la=strlen(a);
for(j=0;j<=la-1;++j)
c[j]=a[la-1-j]-'0'; //把字符格式的数字转化为整形;把数组a中数字以整形形式倒赋给数组c,即a的最后一位数给c的第一个数
scanf("%s",b);
lb=strlen(b);
for(j=0;j<=lb-1;++j)
d[j]=b[lb-1-j]-'0';
if(la>lb)
lmax=la;
else
lmax=lb;
k=0;
for(j=0;j<=lmax-1;++j)
{
e[j]=(c[j]+d[j]+k)%10; //相当于把数组a的末位加上数组b的末位,余数留下来
k=(c[j]+d[j]+k)/10; //如果相加大于等于十,则进位一,加到前一位上,继续计算
}
if(k!=0)
e[lmax]=1; //如果最高位相加要进位,则再多一个1
printf("Case %d:",num);
num++;
printf("%s + %s = ",a, b);
if(e[lmax]==1)
printf("1");
for(j=lmax-1;j>=0;--j)
{printf("%d",e[j]);}
printf("\n");
if(n>=1)
printf("\n");
}
return 0;
}
这是可以AC的程序

#include<stdio.h>
#include<string.h>
int main()
{
char a[1001], b[1001];
int t, i, la, lb, len_max, num = 1, k;
scanf("%d", &t);
getchar();
while(t--)
{
int c[1001] = {0}, d[1001] = {0}, e[1001] = {0};
scanf("%s", a);
la = strlen(a);
for(i = 0; i <= la - 1; ++i)
c[i] = a[la - 1 - i] - '0';
scanf("%s",b); lb = strlen(b);
for(i = 0; i <= lb - 1; ++i)
d[i] = b[lb - 1 - i] - '0';
if(la > lb)
len_max = la;
else
len_max = lb;
k = 0;
for(i = 0; i <= len_max - 1; ++i)
{
e[i] = (c[i] + d[i] + k) % 10;
k = (c[i] + d[i] + k) / 10;
}
if(k != 0)
e[len_max] = 1;
printf("Case %d:\n", num);
num++;
printf("%s + %s = ",a, b);
if(e[len_max] == 1)
printf("1");
for(i = len_max - 1; i >= 0; --i)
{
printf("%d", e[i]); }
printf("\n");
if(t >= 1)
printf("\n");
}
return 0;
}
展开
 我来答
百度网友063153b
2015-03-22 · TA获得超过926个赞
知道小有建树答主
回答量:401
采纳率:100%
帮助的人:169万
展开全部
好说,你的printf("Case %d:",num);少了个换行符

应该是printf("Case %d:\n", num); 所以会PE
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式