怎样用C语言编一个解一元二次方程的程序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用C语言编一个解一元二次方程的程序?相关的知识,希望对你有一定的参考价值。

这个只能计算已经化简成aX^2+bX+c=0的一元二次方程


int fun(double a,double b,double c,double *x1,double *x2)//由于方程既可能无解也可能有两个解,所以不能直接返回X的值

    double p=b*b-4*a*c;//计算Δ
    if (p<0)
    
        return 0;//方程无解,返回0
    
    p=√p//求Δ的平方根
    *x1=……//用求根公式计算X1
    *x2=……//用求根公式计算X2
    return 1;//方程有解,返回1


就这些了,求根公式和求平方根函数我忘了,你自己查一下。头文件要加一个<math.h>。

参考技术A

    #include <stdio.h>

    #include <math.h>

    int main(void)


    double a,b,c,x1,x2,d;

    scanf("%lf%lf%lf",&a,&b,&c);

    d = b * b - 4 * a * c;

    if(d > 0)


    x1 = (-1 * b + sqrt(d)) / (2 * a);

    x2 = (-1 * b - sqrt(d)) / (2 * a);

    printf("x1 = %g,x2 = %g\\n",x1,x2);


    else if(d = 0)


    x1 = x2 = (-1 * b) / (2 * a);

    printf("x1 = %g,x2 = %g\\n",x1,x2);


    else

    printf("方程没有实根\\n");

    return();

哪有无关内容?最后一句return那个是返回值好吧

参考技术B

用三个变量,来接一元二次方程的三个参数,
然后根据这三个参数计算△=b*b-4ac,再根据△判断根情况,并根据求根公式计算出相应根,以上都是用c数学计算不难 ,用到开方函数sqrt

(直接开)
形如x=p或(nx+m)=p(p≥0)的一元二次方程可采用直接开平方的方法解一元二次方程.
如果方程化成x²=p的形式,那么可得x=±p;(x²=p,x=±根号p)
如果方程能化成(nx+m)=p(p≥0)的形式,那么nx+m=±p.(同上)
注意:

①等号左边是一个数的平方的形式而等号右边是一个非负数.
②降次的实质是由一个一元二次方程转化为两个一元一次方程.
③方法是根据平方根的意义开平方

(配方法)
(1)将一元二次方程配成(x+m)=n的形式,再利用直接开平方法求解,这种解一元二次方程的方法叫配方法.
(2)用配方法解一元二次方程的步骤:
①把原方程化为ax²+bx+c=0(a≠0)的形式;
②方程两边同除以二次项系数,使二次项系数为1,并把常数项移到方程右边;
③方程两边同时加上一次项系数一半的平方;
④把左边配成一个完全平方式,右边化为一个常数;
⑤如果右边是非负数,就可以进一步通过直接开平方法来求出它的解,如果右边是一个负数,则判定此方程无实数解。

怎样用C语言编出在n个数里找最大值的程序?

用循环语句!答案若好,另有悬赏!

找最大的值
max=0;
for(int i=0;i<n;i++) if(max<a[i]) max=a[i]; printf("%d",max);
找最小的值
min=100;
for(int i=0;i<n;i++) if(min>a[i]) min=a[i]; printf("%d",min);
找某个值
scanf("%d",&value);
for(int i=0;i<n;i++) if(a[i]==value) printf("%d",i);break;
参考技术A 定义一个数组,能够容纳足够多的数

定义一个max变量,将数组第一个元素赋值给max

数组下标自增,逐一与max比较

如果大于max,就将这个元素的值赋给max

最后输出元素
参考技术B #include<stdio.h>
main()

int max,a,n,i;
scanf("%d",&n);
scanf("%d",&max);
for(i=0;i<n-1;i++)

scanf("%d",&a);
if(max<a) max=a;

printf("max=%d\n",max);
参考技术C int num[n];
int tmp1,max;
tmp1 = num[0];
for (int i=1; i<n; i++)

if ( tmp1 ? num[i] : tmp1 > num[i] )
max = tmp1;
else max = num[i];
tmp1 = max;


是一个对比循环
参考技术D int num[n];
tmp1 = num[0];
int tmp1,tmp2;
for (int i=1; i<n; i++)


tmp2 = num[i];
tmp1 ? num[i] : tmp1 > tmp2;

参考资料:自己想的

以上是关于怎样用C语言编一个解一元二次方程的程序?的主要内容,如果未能解决你的问题,请参考以下文章

用C语言编写程序实现一元二次方程的解?

c语言编写一元2次方程。

用C语言编写程序,输入一元二次方程的系数a,b,c,计算方程的根,要考虑虚根的情况,求解答

C语言求一元二次方程解的函数问题 新手题

C语言题“输入系数的有效值,计算一元二次方程的实根和虚根”怎么编?

用C语言编写一程序求解一元二次方程的根。