gpt4 book ai didi

c - if 和 else 都正在执行

转载 作者:行者123 更新时间:2023-11-30 18:50:21 25 4
gpt4 key购买 nike

我在一个简单的 C 程序中遇到了奇怪的问题。

#include<stdio.h> 
#include<math.h>
#include<conio.h>
main() {
int a, b, c, delta;
float x1, x2;
printf("Please Enter a,b,c :");
scanf("%d%d%d",&a,&b,&c);
delta = (b * b) - (4 * (a * c));
if(delta < 0){
printf("No roots!");
}
else{
if (delta >= 0){
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
}
}
printf("r1=%f and r2=%f", x1, x2);
getch();

}

当我输入2 1 1时,程序似乎在第10行和第13行同时执行了ifelse。输出为无根!x1=0.0000 和 x2=0.0000怎么了?

最佳答案

声明

  printf("r1=%f and r2=%f", x1, x2);

不在 else 子句中。另外,if (delta >= 0){ 也不是必需的。将代码更改为

if(delta < 0) {
printf("No roots!");
}
else {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("r1=%f and r2=%f", x1, x2);
}
getch();

关于c - if 和 else 都正在执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40331113/

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