gpt4 book ai didi

c - 以下代码中运行时错误的原因是什么

转载 作者:行者123 更新时间:2023-11-30 21:20:03 35 4
gpt4 key购买 nike

我试图通过在线法官解决一个问题(https://www.codechef.com/problems/COOK82A)。以下是问题的代码。当我提交时,法官给出运行时错误。任何人都可以帮助我

#include <stdio.h>


int main(void)

{

int a,i,j,flag,pos,flag1,pos1;
char team[15];
int score[4];
scanf("%d",&a);
while(a--)
{

for(i=0;i<4;i++)
{
scanf("%s",&team[i]);
scanf("%d",&score[i]);
}
for(i=0;i<4;i++)
{

if(team[i]=="Barcelona")
pos=i;
if(team[i]=="Eibar")
flag=i;
if(team[i]=="RealMadrid")
pos1=i;
if(team[i]=="Malaga")
flag1=i;

}
if((score[pos]>score[flag]) && (score[flag1]>score[pos1]))
printf("Barcelona\n");
else
printf("RealMadrid\n");
}
return 0;
}

最佳答案

在你的代码中

  scanf("%s",&team[i]);

错误,您没有空间来存储字符串。您可以存储char&team[i]指向的内存中,但不是以 null 结尾的 char数组。

换句话说,你的teamchar 的数组s,而您似乎需要 char 数组数组,类似

#define NAMESIZ 32
#define TEAMSIZ 15

char team[TEAMSIZ][TEAMSIZ] = {0};

然后,正确使用team[i] (沸腾到地址本身)可以提供帮助。

<小时/>

在此错误之后,还有一个必须修复的逻辑错误。您正在使用==运算符来比较字符串,这是不可能的。您需要使用strcmp()比较字符串(即以 null 结尾的 char 数组的内容)。

关于c - 以下代码中运行时错误的原因是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44178979/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com