苹果和橘子的问题。
12个测试用例中只有3个被清除。几个小时以来想不出其他任何东西。
样本输入0
7 11
5 15
3 2
-2 2 1
5 -6
样本输出0
1
1
问题:https://www.hackerrank.com/challenges/apple-and-orange/problem
码
int main(){
int s;
int t;
scanf("%d %d",&s,&t);
int a;
int b;
scanf("%d %d",&a,&b);
int m;
int n;
scanf("%d %d",&m,&n);
int *apple = malloc(sizeof(int) * m);
for(int apple_i = 0; apple_i < m; apple_i++){
scanf("%d",&apple[apple_i]);
}
int *orange = malloc(sizeof(int) * n);
for(int orange_i = 0; orange_i < n; orange_i++){
scanf("%d",&orange[orange_i]);
}
int fellap=0;
int fellor=0;
int d;
for(int apple_i = 0; apple_i < m; apple_i++){
d=apple[apple_i]+a;
f(d>=s && d<=t){
fellap++;
}
}
for(int orange_i = 0; orange_i < n; orange_i ++){
d=orange[orange_i]+b;
if(d>=s&&d<=t){
fellor++;
}
}
printf("%d\n", fellor);
printf("%d\n", fellap);
return 0;
}
最佳答案
您代码中的错误是一个非常琐碎的错误。您已切换了橙子和苹果的输出。更改
printf("%d\n", fellor);
printf("%d\n", fellap);
至
printf("%d\n", fellap);
printf("%d\n", fellor);
我不认为需要将所有值读入数组。您可以简单地遍历输入并同时进行计算。这是一个通过所有测试用例的示例:
通过所有测试用例的工作代码:
int main(){
int s;
int t;
scanf("%d %d",&s,&t);
int a;
int b;
scanf("%d %d",&a,&b);
int m;
int n;
scanf("%d %d",&m,&n);
int noApples=0;
int noOranges=0;
for(int apple_i = 0; apple_i < m; apple_i++){
int apple;
scanf("%d",&apple);
if (apple+a >= s && t >= apple+a)
noApples++;
}
for(int orange_i = 0; orange_i < n; orange_i++){
int orange;
scanf("%d",&orange);
if (orange+b >= s && t >= orange+b)
noOranges++;
}
printf("%d\n%d\n", noApples, noOranges);
return 0;
}
关于c - 无法清除测试用例:应该为此编写代码:,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44998081/