gpt4 book ai didi

c++ - If-else循环寻找解决方案

转载 作者:太空宇宙 更新时间:2023-11-04 14:43:58 25 4
gpt4 key购买 nike

我的代码是:

#include<stdio.h>
void main(void)
{
float timeLeavingTP;
int transitNumber;
float transitTime;
printf("Please enter the time leaving TP.\n");
scanf_s("%f",&timeLeavingTP);
printf("Please enter bus number.\n");
scanf_s("%d",&transitNumber);
if(timeLeavingTP==1.00)
{

if(transitNumber==27)
{
transitTime=1.56;
}
else if(transitNumber==8);
{
transitTime=1.39;
}
}
if(timeLeavingTP==6.30)
{
if(transitNumber==27)
{
transitTime=7.32;
}
else if(transitNumber==8)
{
transitTime=7.29;
}
printf("The time reached home is %f\n",transitTime);
}
}

调试后得到

Please enter the time leaving TP
1.00
Please enter bus number
27
Please enter to continue...

我的问题是如何调整程序以使其看起来像下面的程序。我犯了什么错误?

Please enter the time leaving TP
1.00
Please enter bus number
27
The time reached home is 1.56

提前感谢您的帮助!嗨,伙计们,在包含 == 之后我的调试仍然得到相同的结果吗?我还有什么地方做错了吗?

最佳答案

第 1 部分:===

注意:

if(timeLeavingTP=1.00)

没有达到您的预期。它为 timeLeavingTP 分配 1.00。

你可能想要:

if(timeLeavingTP==1.00)

此外,请注意,此错误在您的程序中出现了 6 次。

第 2 部分:比较 float

您的代码在这种情况下可能有效,但我不能 100% 确定它是否有效。通常很难直接比较 2 个 float ,因为存储它们的不准确性(例如,0.1 通常不能用 float 表示)。

大多数人通过以下几种方式之一解决这个问题:

  1. 测试数字周围的范围。
  2. 转换为一些修复宽度的格式。或许您可以将数字存储为整数,因为它的表示实际上是 0.01 * 存储的数字。
  3. 在这种情况下,您实际上可以将信息存储为字符串,然后进行比较。

第 3 部分:条件

要写一个合适的条件,它应该是这样的:

if (condition) {
...
} else if (condition) {
...
} else if (condition) {
...
} else {
...
}

当然你也可以嵌套条件:

if (condition) {
if (condition) {
...
} else {
...
}
} else if (condition) {
...
}

例如,当您这样做时,您的代码会把它弄乱:

    } 
else(transitNumber=8);
{
transitTime=1.39;
}

请注意,else 语句不接受其后的条件。

第 4 部分:过多的分号

此外,请注意在 else 和 if 语句之后没有分号。分号只出现在大括号内。所以这个声明:

if(timeLeavingTP=6.30);

虽然在语义上有效,但并不符合您的预期。您实际上想要删除该分号。

关于c++ - If-else循环寻找解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25267320/

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