【发布时间】:2017-05-22 07:10:56
【问题描述】:
我正在尝试在 codechef 上运行代码作为此问题的解决方案:** https://www.codechef.com/problems/SIMDISH
虽然它正在编译并在我的 cmd 上提供正确的输出,但它在 Codechef 提交时显示运行时错误。我用谷歌搜索了这个问题,找不到我的代码有任何问题。我无法使用的问题中有一个约束:1 ≤ T ≤ 200,其中 T 是我下面代码中的变量“pairs”
#include <stdio.h>
#include <string.h>
#define INGREDIENT 4
int main()
{
int pairs;
int c[INGREDIENT]={0};
char ingredient1[INGREDIENT][11];
char ingredient2[INGREDIENT][11];
scanf("%d", &pairs);
int i,j,k;
for (i = 0; i < pairs; i++)
{
for (j = 0; j <INGREDIENT; j++)
{
scanf("%s", ingredient1[j]);
}
for (j = 0; j <INGREDIENT; j++)
{
scanf("%s", ingredient2[j]);
}
for (k = 0; k <4; k++)
{
for (j = 0; j < 4; j++)
{
if(strcmp(ingredient1[k], ingredient2[j]) == 0)
++c[i];
}
}
}
for (i = 0; i < pairs; i++)
{
if (c[i]>=2)
{
printf("similar\n");
}
else
printf("dissimilar\n");
}
return 0;
}
`
我还检查了其他解决方案,其中一个被接受的解决方案与我的非常相似。因此无法解决问题。检查这个,它被接受了,和我的类似:
#include<stdio.h>
#include<string.h>
#include<math.h>
//practice question
int main()
{
int i,t,l,j,k,count=0;
scanf("%d",&t);
char name1[4][11];
char name2[4][11];
for(i=0;i<t;i++)
{
count=0;
for(j=0;j<4;j++)
{
scanf("%s",name1[j]);
}
for(j=0;j<4;j++)
{
scanf("%s",name2[j]);
}
for(k=0;k<4;k++)
{
for(j=0;j<4;j++)
{
l=strcmp(name1[k],name2[j]);
if(l==0)
{
count++;
break;
}
}
}
if(count>=2)
printf("similar\n");
else
printf("dissimilar\n");
}
return 0;
}
【问题讨论】:
-
嗨。是的,我确实检查了这一点,并意识到这是初学者遇到的常见错误。但还是想不通。