gpt4 book ai didi

c - 这段代码有什么问题逻辑错误

转载 作者:行者123 更新时间:2023-11-30 17:18:23 26 4
gpt4 key购买 nike

我只是想比较两个整数。代码运行良好,但给出了错误的结果。

int userenter;

int compareseatfirst(Flights *FDA[], String destination, String dep_date, int FC_seats)
{
int j=0;
for (int i=0;i<MAXARRAYSIZE;i++)
{
//test for null

if (FDA[i]==NULL)
{
i++;//skip over this flight record

}
else if(strcmp(FDA[i]->dep_date,dep_date)==0 && (strcmp(FDA[i]->destination,destination)==0) && (FDA[i]->FC_seats<userenter))
{
printf("NOT ENOUGH");
getchar();
j++;
if(j >= 10)
{
break; // Stop Looping as Array is full
}
}
else if(strcmp(FDA[i]->dep_date,dep_date)==0 && (strcmp(FDA[i]->destination,destination)==0) && (FDA[i]->FC_seats==userenter))
{
printf("JUST ENOUGH");
j++;
if(j >= 10)
{
break; // Stop Looping as Array is full
}
}
else if(strcmp(FDA[i]->dep_date,dep_date)==0 && (strcmp(FDA[i]->destination,destination)==0) && (FDA[i]->FC_seats>userenter))
{
printf("ENOUGH");
j++;
if(j >= 10)
{
break; // Stop Looping as Array is full
}
}
}
return j; // Return Count of the Flights found.

}

当它运行时,尽管用户输入的值大于或等于 FC_seats,但它都会给出“ENOUGH”答案。

最佳答案

跟踪循环中的变量i,您就会明白。逻辑不应该是:哦,我跳过了这条记录,所以我增加了i。这是错误的,因为 i 无论如何都会递增。逻辑应该是:哦,我跳过这个条目,所以我在循环中什么也不做。 ——M·奥姆

关于c - 这段代码有什么问题逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29191665/

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