杭电acm1002题,使用VC++验证结果正确,可结果还是现实wrong answer,不知道到底哪里出错了。
我的程序。#include<stdio.h>#include<string.h>#include<stdlib.h>voidsum(chara[],charb[]){ch...
我的程序。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void sum(char a[],char b[])
{
char c[1001];
int l1,l2;
int i,j,t,m,n,k;
l1=strlen(a);
l2=strlen(b);
i=l1-1;
j=l2-1;
k=1000;
t=0;
while(i>=0&&j>=0)
{
m=(int)a[i--]-48;
n=(int)b[j--]-48;
c[k--]=(m+n+t)%10+48;
if(m+n>9)
t=1;
else
t=0;
}
while(i>=0)
{
m=(int)a[i--]-48;
c[k--]=(m+t)%10+48;
if(m+t>9)
t=1;
else
t=0;
}
while(j>=0)
{
n=(int)b[j--]-48;
c[k--]=(n+t)%10+48;
if(n+t>9)
t=1;
else
t=0;
}
if(t==1)
c[k--]='1';
for(i=k+1;i<=1000;i++)
printf("%c",c[i]);
}
int main()
{
char a[1000],b[1000];
int t;
for(t=1;t<=20;t++)
{
scanf("%s %s",a,b);
{
printf("Case %d:\n",t);
printf("%s + %s = ",a,b);
sum(a,b);
printf("\n\n");
}
}
return 0;
}
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1002
程序修改为:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void sum(char a[],char b[])
{
char c[1001];
int l1,l2;
int i,j,t,m,n,k;
l1=strlen(a);
l2=strlen(b);
i=l1-1;
j=l2-1;
k=1000;
t=0;
while(i>=0&&j>=0)
{
m=(int)a[i--]-48;
n=(int)b[j--]-48;
c[k--]=(m+n+t)%10+48;
if(m+n>9)
t=1;
else
t=0;
}
while(i>=0)
{
m=(int)a[i--]-48;
c[k--]=(m+t)%10+48;
if(m+t>9)
t=1;
else
t=0;
}
while(j>=0)
{
n=(int)b[j--]-48;
c[k--]=(n+t)%10+48;
if(n+t>9)
t=1;
else
t=0;
}
if(t==1)
c[k--]='1';
for(i=k+1;i<=1000;i++)
{
if(c[i]!='0')
printf("%c",c[i]);
}
}
int main()
{
char a[1000],b[1000];
int t;
for(t=1;t<=20;t++)
{
scanf("%s %s",a,b);
{
printf("Case %d:\n",t);
printf("%s + %s = ",a,b);
sum(a,b);
printf("\n\n");
}
}
return 0;
}
还是有问题 展开
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void sum(char a[],char b[])
{
char c[1001];
int l1,l2;
int i,j,t,m,n,k;
l1=strlen(a);
l2=strlen(b);
i=l1-1;
j=l2-1;
k=1000;
t=0;
while(i>=0&&j>=0)
{
m=(int)a[i--]-48;
n=(int)b[j--]-48;
c[k--]=(m+n+t)%10+48;
if(m+n>9)
t=1;
else
t=0;
}
while(i>=0)
{
m=(int)a[i--]-48;
c[k--]=(m+t)%10+48;
if(m+t>9)
t=1;
else
t=0;
}
while(j>=0)
{
n=(int)b[j--]-48;
c[k--]=(n+t)%10+48;
if(n+t>9)
t=1;
else
t=0;
}
if(t==1)
c[k--]='1';
for(i=k+1;i<=1000;i++)
printf("%c",c[i]);
}
int main()
{
char a[1000],b[1000];
int t;
for(t=1;t<=20;t++)
{
scanf("%s %s",a,b);
{
printf("Case %d:\n",t);
printf("%s + %s = ",a,b);
sum(a,b);
printf("\n\n");
}
}
return 0;
}
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1002
程序修改为:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void sum(char a[],char b[])
{
char c[1001];
int l1,l2;
int i,j,t,m,n,k;
l1=strlen(a);
l2=strlen(b);
i=l1-1;
j=l2-1;
k=1000;
t=0;
while(i>=0&&j>=0)
{
m=(int)a[i--]-48;
n=(int)b[j--]-48;
c[k--]=(m+n+t)%10+48;
if(m+n>9)
t=1;
else
t=0;
}
while(i>=0)
{
m=(int)a[i--]-48;
c[k--]=(m+t)%10+48;
if(m+t>9)
t=1;
else
t=0;
}
while(j>=0)
{
n=(int)b[j--]-48;
c[k--]=(n+t)%10+48;
if(n+t>9)
t=1;
else
t=0;
}
if(t==1)
c[k--]='1';
for(i=k+1;i<=1000;i++)
{
if(c[i]!='0')
printf("%c",c[i]);
}
}
int main()
{
char a[1000],b[1000];
int t;
for(t=1;t<=20;t++)
{
scanf("%s %s",a,b);
{
printf("Case %d:\n",t);
printf("%s + %s = ",a,b);
sum(a,b);
printf("\n\n");
}
}
return 0;
}
还是有问题 展开
2个回答
展开全部
错误有4:
1、测试数据的组数是要输入的。
2、最后一行后不要再输出空行。
3、求和函数有误,为啥不要输出0?要把那句“if(c[i]=='0')”删掉。
4、前面的判断if(m+n>9)?为啥不要加进位呢?应该是if(m+n+t>9)
修改后你的AC代码如下:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void sum(char a[],char b[])
{
char c[1001];
int l1,l2;
int i,j,t,m,n,k;
l1=strlen(a);
l2=strlen(b);
i=l1-1;
j=l2-1;
k=1000;
t=0;
while(i>=0&&j>=0)
{
m=(int)a[i--]-48;
n=(int)b[j--]-48;
c[k--]=(m+n+t)%10+48;
if(m+n+t>9)
t=1;
else
t=0;
}
while(i>=0)
{
m=(int)a[i--]-48;
c[k--]=(m+t)%10+48;
if(m+t>9)
t=1;
else
t=0;
}
while(j>=0)
{
n=(int)b[j--]-48;
c[k--]=(n+t)%10+48;
if(n+t>9)
t=1;
else
t=0;
}
if(t==1)
c[k--]='1';
for(i=k+1;i<=1000;i++)
{
//if(c[i]!='0')
printf("%c",c[i]);
}
}
int main()
{
char a[1000],b[1000];
int t;
int v;
scanf("%d",&v);
for(t=1;t<=v;t++)
{
scanf("%s%s",a,b);
{
printf("Case %d:\n",t);
printf("%s + %s = ",a,b);
sum(a,b);
if(t!=v)
printf("\n\n");
else
printf("\n");
}
}
return 0;
}
1、测试数据的组数是要输入的。
2、最后一行后不要再输出空行。
3、求和函数有误,为啥不要输出0?要把那句“if(c[i]=='0')”删掉。
4、前面的判断if(m+n>9)?为啥不要加进位呢?应该是if(m+n+t>9)
修改后你的AC代码如下:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void sum(char a[],char b[])
{
char c[1001];
int l1,l2;
int i,j,t,m,n,k;
l1=strlen(a);
l2=strlen(b);
i=l1-1;
j=l2-1;
k=1000;
t=0;
while(i>=0&&j>=0)
{
m=(int)a[i--]-48;
n=(int)b[j--]-48;
c[k--]=(m+n+t)%10+48;
if(m+n+t>9)
t=1;
else
t=0;
}
while(i>=0)
{
m=(int)a[i--]-48;
c[k--]=(m+t)%10+48;
if(m+t>9)
t=1;
else
t=0;
}
while(j>=0)
{
n=(int)b[j--]-48;
c[k--]=(n+t)%10+48;
if(n+t>9)
t=1;
else
t=0;
}
if(t==1)
c[k--]='1';
for(i=k+1;i<=1000;i++)
{
//if(c[i]!='0')
printf("%c",c[i]);
}
}
int main()
{
char a[1000],b[1000];
int t;
int v;
scanf("%d",&v);
for(t=1;t<=v;t++)
{
scanf("%s%s",a,b);
{
printf("Case %d:\n",t);
printf("%s + %s = ",a,b);
sum(a,b);
if(t!=v)
printf("\n\n");
else
printf("\n");
}
}
return 0;
}
华芯测试
2024-09-01 广告
2024-09-01 广告
电学测试台是深圳市华芯测试科技有限公司的核心设备之一,它集成了高精度测量仪器与自动化控制系统,专为半导体芯片、电子元件及模块的电性能检测而设计。该测试台能够迅速、准确地完成电压、电流、电阻、电容及频率等关键参数的测试,确保产品质量符合行业标...
点击进入详情页
本回答由华芯测试提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询