杭电acm里面1002,我编写程序的输出形式和题目要求完全吻合,但是就是通不过,求助各位
#include<stdio.h>#include<string.h>#defineMAX_LEN2000intan1[MAX_LEN+10];intan2[MAX_LE...
#include<stdio.h>
#include<string.h>
#define MAX_LEN 2000
int an1[MAX_LEN+10];
int an2[MAX_LEN+10];
char szLine1[MAX_LEN+10];
char szLine2[MAX_LEN+10];
int main(){
int n,k;
scanf("%d",&n);
for(k=1;k<=n;k++){
scanf("%s",szLine1);
scanf("%s",szLine2);
int i,j;
memset(an1,0,sizeof(szLine1));
memset(an2,0,sizeof(szLine2));
int nLen1=strlen(szLine1);
j=0;
for(i=nLen1-1;i>=0;i--)
an1[j++]=szLine1[i]-'0';
int nLen2=strlen(szLine2);
j=0;
for(i=nLen2-1;i>=0;i--)
an2[j++]=szLine2[i]-'0';
for(i=0;i<MAX_LEN;i++){
an1[i]+=an2[i];
if(an1[i]>=10){//看是否要进位
an1[i]-=10;
an1[i+1]++;//进位
}
}
bool bStartOutput=false;//此变量用于跳过多余的0
printf("Case %d:\n",k);
printf("%s + %s = ",szLine1,szLine2);
for(i=MAX_LEN;i>=0;i--){
if(bStartOutput){
printf("%d",an1[i]);}//如果多余的0已经都跳过,则输出
else if(an1[i]){
printf("%d",an1[i]);
bStartOutput=true;}//碰到第一个非0的值,就说明多余的0已经都跳过
}
printf("\n\n");
} return 0;
} 展开
#include<string.h>
#define MAX_LEN 2000
int an1[MAX_LEN+10];
int an2[MAX_LEN+10];
char szLine1[MAX_LEN+10];
char szLine2[MAX_LEN+10];
int main(){
int n,k;
scanf("%d",&n);
for(k=1;k<=n;k++){
scanf("%s",szLine1);
scanf("%s",szLine2);
int i,j;
memset(an1,0,sizeof(szLine1));
memset(an2,0,sizeof(szLine2));
int nLen1=strlen(szLine1);
j=0;
for(i=nLen1-1;i>=0;i--)
an1[j++]=szLine1[i]-'0';
int nLen2=strlen(szLine2);
j=0;
for(i=nLen2-1;i>=0;i--)
an2[j++]=szLine2[i]-'0';
for(i=0;i<MAX_LEN;i++){
an1[i]+=an2[i];
if(an1[i]>=10){//看是否要进位
an1[i]-=10;
an1[i+1]++;//进位
}
}
bool bStartOutput=false;//此变量用于跳过多余的0
printf("Case %d:\n",k);
printf("%s + %s = ",szLine1,szLine2);
for(i=MAX_LEN;i>=0;i--){
if(bStartOutput){
printf("%d",an1[i]);}//如果多余的0已经都跳过,则输出
else if(an1[i]){
printf("%d",an1[i]);
bStartOutput=true;}//碰到第一个非0的值,就说明多余的0已经都跳过
}
printf("\n\n");
} return 0;
} 展开
展开全部
#include<stdio.h>
#include<string.h>
#define MAX_LEN 2000
int an1[MAX_LEN+10];
int an2[MAX_LEN+10];
char szLine1[MAX_LEN+10];
char szLine2[MAX_LEN+10];
int main()
{
int n,k;
scanf("%d",&n);
for(k=1;k<=n;k++)
{
scanf("%s",szLine1);
scanf("%s",szLine2);
int i,j;
memset(an1,0,sizeof(an1)); // memset wrong size
memset(an2,0,sizeof(an2)); // memset wrong size
int nLen1=strlen(szLine1);
j=0;
for(i=nLen1-1;i>=0;i--)
an1[j++]=szLine1[i]-'0';
int nLen2=strlen(szLine2);
j=0;
for(i=nLen2-1;i>=0;i--)
an2[j++]=szLine2[i]-'0';
for(i=0;i<MAX_LEN;i++)
{
an1[i]+=an2[i];
if(an1[i]>=10)
{//看是否要进位
an1[i]-=10;
an1[i+1]++;//进位
}
}
bool bStartOutput=false;//此变量用于跳过多余的0
printf("Case %d:\n",k);
printf("%s + %s = ",szLine1,szLine2);
for(i=MAX_LEN;i>=0;i--)
{
if(bStartOutput)
{
printf("%d",an1[i]);
}//如果多余的0已经都跳过,则输出
else if(an1[i])
{
printf("%d",an1[i]);
bStartOutput=true;
}//碰到第一个非0的值,就说明多余的0已经都跳过
}
printf("\n");
if(k<n) printf("\n"); // no extra newline for last case
} return 0;
}
#include<string.h>
#define MAX_LEN 2000
int an1[MAX_LEN+10];
int an2[MAX_LEN+10];
char szLine1[MAX_LEN+10];
char szLine2[MAX_LEN+10];
int main()
{
int n,k;
scanf("%d",&n);
for(k=1;k<=n;k++)
{
scanf("%s",szLine1);
scanf("%s",szLine2);
int i,j;
memset(an1,0,sizeof(an1)); // memset wrong size
memset(an2,0,sizeof(an2)); // memset wrong size
int nLen1=strlen(szLine1);
j=0;
for(i=nLen1-1;i>=0;i--)
an1[j++]=szLine1[i]-'0';
int nLen2=strlen(szLine2);
j=0;
for(i=nLen2-1;i>=0;i--)
an2[j++]=szLine2[i]-'0';
for(i=0;i<MAX_LEN;i++)
{
an1[i]+=an2[i];
if(an1[i]>=10)
{//看是否要进位
an1[i]-=10;
an1[i+1]++;//进位
}
}
bool bStartOutput=false;//此变量用于跳过多余的0
printf("Case %d:\n",k);
printf("%s + %s = ",szLine1,szLine2);
for(i=MAX_LEN;i>=0;i--)
{
if(bStartOutput)
{
printf("%d",an1[i]);
}//如果多余的0已经都跳过,则输出
else if(an1[i])
{
printf("%d",an1[i]);
bStartOutput=true;
}//碰到第一个非0的值,就说明多余的0已经都跳过
}
printf("\n");
if(k<n) printf("\n"); // no extra newline for last case
} return 0;
}
追问
谢谢了,这次提交成功了,我是用G++提交的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询