C语言 我尝试将用户输入的B值(比方说4)除以2*a(a是另一个用户输入的值,应该输入2)[已关闭]

myzjeezk  于 2023-03-01  发布在  其他
关注(0)|答案(1)|浏览(86)

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
15小时前关门了。
Improve this question
下面是我的代码:

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

int problem2();

int main(void){
problem2();
return 0;
}

int problem2(){
int a, b, c, i, x1, x2, q;

printf("Enter A, B, C for a quadratic equation\\n");
scanf("%d %d %d", &a, &b, &c);

q=0;

while(q\<1){
if (pow((b),2)-4*a*c \< 0) {
x1= -1\*(b/2\*a);
printf("X1 = %d", x1);
break;}
}

}

问题:当你运行这个程序时,用户应该输入3个值,#2代表a,#4代表b,#3代表c。现在,对于x1,方程-1 *(b/2 * a)的结果应该是-1,因为2 * a = 4,所以-1 *(b/4)应该是-1。但是它等于-4,这显然是不正确的。有人能帮忙找出问题是什么吗?
我期待的答案是-1而不是-4。

2w2cym1i

2w2cym1i1#

我想这会帮助你,对你的解决方案有一些了解。你的代码有一些错误,必须清除它们。

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

int problem2();

int main(void){
   problem2();
   return 0;
}

int problem2()
{
int a, b, c, i, x1, x2, q;

printf("Enter A, B, C for a quadratic equation\\n");
scanf("%d %d %d", &a, &b, &c);

q=0;

    while(q<1)
    {
        if (pow((b),2)-4*a*c< 0)
        {
            x1= -1*(b/2*a);
            printf("X1 = %d", x1);
            break;
        }
    } 

}

相关问题