gpt4 book ai didi

c - 如何使用 3 个系数求解 C 中的二次方程?

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

我的教授告诉我们编写一个求解二次方程的 C 程序,但他补充说,一开始他希望我们为每个 a、b 和 c 定义 4 组 3 个系数。因此,换句话说,我必须为每个 a、b 和 c 定义 4 组 3 个不同系数,一旦程序求解出 a、b 和 c 的第一组 3 个系数的方程,就可以继续求解下一组系数3 个定义的系数,直到解决所有 4 组。

我能够编写一个程序,通过使用 scanf 单独定义每个 a、b 和 c 系数来求解二次方程。你能帮忙吗,因为我在任何地方都找不到答案?

这就是我到目前为止所写的,它非常简单但有效。我正在学习工程类(class),我们每周只有 2 小时的实验时间,这并不反射(reflect)类内容。

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

int as[4], bs[4], cs[4];
int a, b, c;
double root1,root2,discriminant, realpart, imaginarypart;
int main ()
{
int i, n;
printf("Enter how many coefficents do you want to eneter : ");
scanf("%d",&n);
for(i = 0; i < n; ++i)
{
printf("Enter you coefficents for a,b and c for set %d : \n", i+1);
scanf("%d %d %d",&as[i],&bs[i],&cs[i]);
a = as[i];
b = bs[i];
c = cs[i] ;
}
printf("a = %d %d %d\n", as[0], as[1], as[2]);
printf("b = %d %d %d\n", bs[0], bs[1], bs[2]);
printf("c = %d %d %d\n", cs[0], cs[1], cs[2]);

for(i = 0; i < n; ++i)
{
discriminant = (b*b - 4*a*c);
root1 = (-b - sqrt(discriminant))/(2*a);
root2 = (-b + sqrt(discriminant))/(2*a);



if (discriminant > 0 )
{
printf("Your set %d of roots is : \nroot1 = %lf\nroot2 = %lf\n", i+1,root1, root2);
}
else if (discriminant == 0)
{
printf("Your set %d of roots is : \nroot1 = root2 = %lf\n",i+1,root1);
}
else
{
realpart = -b/(2*a);
imaginarypart = sqrt(-discriminant)/(2*a);
printf("Your set %d of roots is :\nroot1 = %lf + %lfi\nroot2 = %lf - %lfi\n",i+1,realpart, imaginarypart, realpart, imaginarypart);
}
}

return 0;
}

最佳答案

你混合了两件事:定义 4组并从输入中读取它们(正如我从你的“使用scanf”中了解到的)。

(从输入中读取它们没有问题,因为新读取的值会覆盖旧值。)

提前定义 4组可以简单地通过数组来完成:

float as[4], bs[4], cs[4];        // as[0], bs[0], cs[0] is the 1st set, etc.
float a , b , c ;

// Assigning values to sets: as[0] = ...; bs[0] = ..., cs[0] = ...;
as[1] = ...; bs[1] = ..., cs[1] = ...;
......................................
......................................

// or initialize them directly in the previous declaration, e.g.
// float as[] = {1, 4, -2, 3},
// bs[] = {0, 5, 1, -1},
// cs[] = {2, -4, 1, 2};

for (int i; i < 4; ++i)
{
a = a[i];
b = b[i];
c = c[i];
// Code (or a function call) for computing and printing result(s) from a, b, c
}

关于c - 如何使用 3 个系数求解 C 中的二次方程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40819273/

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