gpt4 book ai didi

c - 我做了什么? If 语句有效....有点

转载 作者:行者123 更新时间:2023-11-30 20:45:00 28 4
gpt4 key购买 nike

所以昨晚我问了一个关于我正在尝试练习的三角计算器的问题,我又带着与我上一个问题非常相关的问题回来了。我从昨晚开始就修复了计算器,但由于某种奇怪的原因,其中一个 if 语句通过了针对不同 if 语句给出的测试。这是我的代码 -

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
int x;
float o, h, a, S, C, T;
enum { sine, cosine, tangent};

printf("Enter the value for the function you wish to calculate\n(Sine = 0 Cosine = 1 Tangent = 2): ");
scanf("%f", &x);

if(x == 0)
{
printf("Enter the value of the opposite leg: ");
scanf("%f", &o);
printf("Enter the value of the hypotenuse: ");
scanf("%f", &h);

S = o / h;
printf("The sine is equal to %f", S);
}

else if(x < 2, x > 0)
{
printf("Enter the value of the adjacent leg: ");
scanf("%f", &a);
printf("Enter the value of the hypotenuse: ");
scanf("%f", &h);

C = a / h;
printf("The cosine is equal to %f", C);
}

else if(x == 2)
{
printf("Enter the value of the opposite leg: ");
scanf("%f", &o);
printf("Enter the value of the adjacent leg");
scanf("%f", &a);

T = o / a;
printf("The tangent is equal to %f", T);
}
else
{
printf("Wat da fack");
}

return 0;


}

所发生的情况是,余弦测试通过了正切,但正切函数不起作用。和以前一样,我对此仍然很陌生,所以对我来说要轻松一些。顺便说一句,我有两个余弦测试条件的原因是,除非我有这样的条件,否则它不会运行,对此的任何洞察力都值得赞赏也是。

最佳答案

if (x < 2, x > 0)不做你的想法。应该是if (x<2 && x>0) ;阅读 comma operator C

如果您使用所有警告和调试信息进行编译(例如使用 gcc -Wall -g ),您可能会收到警告。您应该学习如何使用调试器(例如 Linux 上的 gdb)。

编译器(至少是 GCC)应该警告您 scanf("%f", &x);哪里x是一些int 。您可能想要scanf (" %d", &x);您可能想测试 scanf 的结果(它为您提供成功读取元素的数量)。

您很可能需要结束每个 printf使用换行符格式化字符串(例如代码 printf("Enter the value of the opposite leg:\n"); ) - 或者调用 fflush很多时候 - 你最好在 scanf 中留一个空格格式化字符串如 scanf(" %f", &a)

关于c - 我做了什么? If 语句有效....有点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14099273/

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