hdu 1002 自己测试通过 就是老是wa 不知道哪里错了 求大牛

#include<stdio.h>#include<string.h>constintMAX=1005;chars1[MAX],s2[MAX];inta[MAX]={0}... #include<stdio.h>
#include<string.h>
const int MAX=1005;
char s1[MAX],s2[MAX];
int a[MAX]={0};
int b[MAX]={0};
int c[MAX]={0};
int i,ce,q,len1,len2;
int main()
{
ce=0;
int n;
scanf("%d",&n);
while(n--)
{
q=0;
scanf("%s%s",s1,s2);
char *p1=s1;
char *p2=s2;
while(*p1=='0')
{
p1++;
q++;
}
for(i=q;i<strlen(s1);i++)
{
s1[i-q]=s1[i];//倒叙转成数字放入数组,从而实现不同长度的数从个位对齐
}
s1[i-q]='\0';
q=0;
while(*p2=='0')
{
p2++;
q++;
}
for(i=q;i<strlen(s2);i++)
{
s2[i-q]=s2[i];
}
s2[i-q]='\0';
len1=strlen(s1);
len2=strlen(s2);
q=len1;
while(q--)
{
a[q]=s1[len1-q-1]-'0';
}
q=len2;
while(q--)
{
b[q]=s2[len2-q-1]-'0';
}
if(len1>=len2)
q=len1;
else
q=len2;
for(i=0;i<q;i++)
{
if(a[i]+b[i]>=10)
{
c[i]+=(a[i]+b[i])%10;
c[i+1]+=(a[i]+b[i])/10;

}
else
{
c[i]+=a[i]+b[i];
}
}
ce++;
printf("Case %d:\n%s + %s = ",ce,s1,s2);
if(c[i]!=0)
printf("%d",c[i]);
while(i--)
printf("%d",c[i]);
printf("\n");
if(n)
printf("\n");
for(i=0;i<1005;i++)
{
a[i]=0;
b[i]=0;
c[i]=0;
}
}
return 0;

}
展开
 我来答
porker2008
2011-08-06 · TA获得超过1.4万个赞
知道大有可为答主
回答量:7066
采纳率:62%
帮助的人:1.1亿
展开全部
#include<stdio.h>
#include<string.h>
const int MAX=1005;
char s1[MAX],s2[MAX];
int a[MAX]={0};
int b[MAX]={0};
int c[MAX]={0};
int i,ce,q,len1,len2;
int main()
{
ce=0;
int n;
scanf("%d",&n);
while(n--)
{
q=0;
scanf("%s%s",s1,s2);
char *p1=s1;
char *p2=s2;
while(*p1=='0')
{
p1++;
q++;
}
for(i=q;i<strlen(s1);i++)
{
s1[i-q]=s1[i];//倒叙转成数字放入数组,从而实现不同长度的数从个位对齐
}
s1[i-q]='\0';
q=0;
while(*p2=='0')
{
p2++;
q++;
}
for(i=q;i<strlen(s2);i++)
{
s2[i-q]=s2[i];
}
s2[i-q]='\0';
len1=strlen(s1);
len2=strlen(s2);
q=len1;
while(q--)
{
a[q]=s1[len1-q-1]-'0';
}
q=len2;
while(q--)
{
b[q]=s2[len2-q-1]-'0';
}
if(len1>=len2)
q=len1;
else
q=len2;
for(i=0;i<q;i++)
{
if(a[i]+b[i]>=10)
{
c[i]+=(a[i]+b[i])%10;
c[i+1]+=(a[i]+b[i])/10;

}
else
{
c[i]+=a[i]+b[i];
}
c[i+1] += c[i]/10; // 做进位处理
c[i]%=10; // 做进位处理
}
ce++;
printf("Case %d:\n%s + %s = ",ce,s1,s2);
if(c[i]!=0)
printf("%d",c[i]);
while(i--)
printf("%d",c[i]);
printf("\n");
if(n)
printf("\n");
for(i=0;i<1005;i++)
{
a[i]=0;
b[i]=0;
c[i]=0;
}
}
return 0;

}
易捷测试
2024-10-23 广告
load pull的简单原理是使用一个叫tuner的东西,可理论模拟任意阻抗的负载,(你可以把tuner想像成一个一段并联传输线和一段串联传输线的组合器件,而传输线的长度和阻抗都是可调的,那么通过调节即可遍历smith原图的任意位置)实际测... 点击进入详情页
本回答由易捷测试提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式