gpt4 book ai didi

c - 扫描多个输入并根据真/假的数量输出 - 在 C 中

转载 作者:行者123 更新时间:2023-11-30 15:08:05 26 4
gpt4 key购买 nike

我有一项任务,应该向用户询问一些有关飞机发射的温度问题。

例如:

  • 平均气温是多少?
  • 过去一天的最低气温?
  • 下雨了吗?

现在程序应该接受输入并基于一些条件

  • 温度必须为 42 度
  • 温度不能低于 32 度
  • 不会下雨

所以我通过嵌套一些“if 语句”得到了飞机发射“可以”的输出,这一切都很好。问题是,根据错误语句的数量,它会输出不同的内容。

例如:

如果唯一的问题是温度低于 32 度,它将输出:

飞机没有起飞,因为过去一天气温已降至 32 度以下

如果温度低于 32 度并且正在下雨,程序将会输出

飞机没有起飞,因为:

气温低于32度

下雨了

我知道我可以针对每种情况编写一大堆 if 语句,但这只会使我的代码变得庞大且困惑。当然,必须有一种更简单的方法来设置它,其中“有 2 个语句错误,因此根据哪 2 个语句打印此内容”。我应该做一个 switch 声明吗?

我上的最后一个类我将所有工作分成了函数,然后在需要时将每个函数调用到主函数中。在本类(class)中,我们必须在主函数中完成所有工作,这有点令人困惑,因为我开始以不同的方式学习。

提前致谢。

最佳答案

ternary operator结合格式字符串是解决这个问题的便捷方法。

三元运算符允许您根据某些 bool 表达式有条件地分配一个值,并且格式字符串允许您将其他字符串(甚至是空字符串)注入(inject)到 printfs 中:

char *cond1 = temperature_is_low ? "the temperature is low" : "";
char *cond2 = is_raining ? "it's raining" : "";
char *sep = (temperature_is_low && is_raining) ? " and " : "";
printf("The plane will not launch because %s%s%s.\n", cond1, sep, cond2);

如果您不能使用三元运算符或格式字符串,您可以通过将打印分隔为多行来完成相同的操作:

printf("The plane will not launch because ");
if (temperature_is_low)
printf("the temperature is low");
if (temperature_is_low && is_raining)
printf(" and ");
if (is_raining)
printf("it's raining");
printf(".\n");

关于c - 扫描多个输入并根据真/假的数量输出 - 在 C 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37689902/

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