當前位置:首頁 » 編程語言 » 編一個解一元二次方程的c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

編一個解一元二次方程的c語言

發布時間: 2022-06-05 16:22:42

⑴ 怎樣用C語言編一個解一元二次方程的程序(可以看步驟)!

#include <stdio.h>
#include <math.h>
int main(void)
{
int a, b, c; //定義一元二次方程的三個數值;
printf("請依次輸入一元二次方程的三個參數a b c,中間以空格隔開\n");
scanf("%d %d %d", &a, &b, &c); //依次輸入一元二次方程的三個參數
double delta = b*b - 4*a*c; //定義delta的值為b*b - 4*a*c
double x1 = (-b + sqrt(delta))/(2 * a);
double x2 = (-b - sqrt(delta))/(2 * a);

if (delta>0) //delta大於0時,方程有兩個解
{
printf("一元二次方程有兩個解\n");
printf("一元二次方程的第一個解,x1 = %f\n",x1);
printf("一元二次方程的第二個解,x2 = %f\n",x2);
}
else if (delta ==0) //delta等於0,方程有兩個相同的解
{
printf("一元二次方程有兩個相同的解\n");
printf("一元二次方程的解為x1 = x2 =%f\n",x1);
}
else //delta小於0時,方程沒有解
{
printf("一元二次方程沒有解\n");
}

return 0;
}

⑵ C語言編寫一個求一元二次方程的實根的程序。

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

intmain()
{
inta,b,c;
intx1,x2;
intd;

printf("請輸入方程的三個系數:");
scanf("%d,%d,%d",&a,&b,&c);

d=b*b-4*a*c;
if(d>0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);

printf("方程有兩個不相等的根為:%d,%d ",x1,x2);
}
elseif(d=0)
{
x1=x2=(-b)/(2*a);
printf("方程有兩個相等的根為:%d ",x1);
}
elseif(d<0)
{
printf("方程沒有實根 ");
}

return0;
}

⑶ 編寫求解一元二次方程的C語言程序(紅色部分有標注)

#include <stdio.h>
#include <math.h>
int main()
{
double a=1,b=0,c=0,x1,x2,delta;
printf("Input a,b,c: ");
scanf("%lf%lf%lf",&a,&b,&c);//(這里為紅色部分)

if(a==0.0 && b==0.0 && c==0)
{
printf("系數a,b,c不能構成方程! ");
return 0;
}
if(a==0)
{
x1=x2=-c/b;
printf("x1=x2=%.4f ",x1);
return 0;
}
delta =b*b - 4*a*c; //此處填寫delta的計算表達式(這里為紅色部分)
if( delta >= 0)//此處填寫表達式 如果delta>=0
{
delta=sqrt(delta);
x1=(-b+delta)/(2*a);
x2=(-b-delta)/(2*a);
printf("x1=%.4f x2=%.4f ",x1,x2);
}
else
{
delta = (0-delta);//delta反號;(這里為紅色部分)
delta=sqrt(delta);//delta開方;(這里為紅色部分)
x1=-b/(2*a);//實部
x2=delta/(2*a);//虛部
printf("x1=%.4f+%.4fi x2=%.4f-%.4fi ",x1,x2,x1,x2);
}
getchar();
return 0;
}

結果如下:

方程2

⑷ 怎樣用C語言編一個解一元二次方程的程序

這個只能計算已經化簡成aX^2+bX+c=0的一元二次方程


intfun(doublea,doubleb,doublec,double*x1,double*x2)//由於方程既可能無解也可能有兩個解,所以不能直接返回X的值
{
doublep=b*b-4*a*c;//計算Δ
if(p<0)
{
return0;//方程無解,返回0
}
p=√p//求Δ的平方根
*x1=……//用求根公式計算X1
*x2=……//用求根公式計算X2
return1;//方程有解,返回1
}


就這些了,求根公式和求平方根函數我忘了,你自己查一下。頭文件要加一個<math.h>。

⑸ C語言求1元2次方程解

#include<stdio.h>
#include<math.h>
void
main()
{
printf("請輸入a,b,c:");
float
a,b,c;
scanf("%f,%f,%f",&a,&b,&c);
if(b*b-4*a*c==0)
printf("方程有兩個相同的實根為:\n%f\n",-b/(a*2));
if(b*b-4*a*c>0)
printf("方程有兩個不同的實根,分別為:\n%f,%f\n",(-b+sqrt(b*b-4*a*c))/(2*a),(-b-sqrt(b*b-4*a*c))/(2*a));
if(b*b-4*a*c<0)
printf("方程有兩個不同的虛根,分別為:\n%f+%fi,%f-%fi\n",-b/(a*2),sqrt(-b*b+4*a*c)/(2*a),-b/(a*2),sqrt(-b*b+4*a*c)/(2*a));
}

⑹ C語言,求一元二次方程的解

對於如下的一元二次方程:

ax*x+bx+c=0

設計C語言程序,輸入一元二次方程的三個系數a、b、c,求解出該方程的兩個根,並且允許用戶在程序中多次輸入不同的系數,以求解不同的一元二次方程的解。

編程思路分析:

對於該方程,令delta=b^2-4*a*c,從數學的角度來講,我們需要根據delta的值來判斷該方程的根情況:

當delta>=0時,其兩個根為實數解,分別為(-b+sqrt(delta))/(2*a)和(-b-sqrt(delta))/(2*a);

當delta<0時,其兩個根為復數解,實部皆為-b/(2*a),虛部分別為sqrt(-delta)/(2*a)和-sqrt(-delta)/(2*a)。

其中,sqrt(delta)代表對delta作開根號運算。

在代碼設計中,可定義一個結構體Complex存儲該方程的根,在該結構體中包括實部和虛部兩個變
在程序中,定義兩個Complex類型的根x1和x2,當delta>=0時,兩個根的虛部為0,否則,分別求解兩個根的虛部值。
具體編程如下:

#include"stdio.h"
#include"math.h"
/*求一元二次方程ax*x+bx+c=0的解*/
main()
{floata,b,c,x1,x2,d;
printf("請輸入a:");
scanf("%f",&a);
printf("請輸入b:");
scanf("%f",&b);
printf("請輸入c:");
scanf("%f",&c);
d=b*b-4*a*c;if(d<0)
printf("方程沒有實數解。 ");
if(d==0){x1=(-b)/(2*a);
printf("x1=%f ",x1);}
if(d>0){x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f ",x1,x2);}}
請輸入a:12
請輸入b:34
請輸入c:4
x1=-0.122985,x2=-2.710348
Pressanykeytocontinue

為迭代序列。

⑺ C語言編程 解一元二次方程

#include<stdio.h>

main()
{int a,b,c,x1,x2,M,n;
printf("請輸入方程的三個系數:");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);n=a*c;
M=b*b-4*n;
printf("%d\n",M);if (M>0)
{ x1=(-b+M)/(2*a);
x2=(-b-M)/(2*a);
printf("方程的兩個根是:\nx1=%d,x2=%d\n",x1,x2);
}
else if (M==0)
{ x1=-b/(2*a);
printf("方程具有兩個相等的實根:x1=x2=%d\n",x1);
}
else
printf("輸入錯誤,請重新輸入\n");

}

⑻ 用C語言編寫一程序求解一元二次方程的根。

#include<stdio.h>
#include<math.h>
void m(float a,float b,float c)
{
double x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("方程的根是%.2lf和%.2lf",x1,x2);
}
void n(float a,float b,float c)
{
double x;
x=(-b)/(2*a);
printf("方程的根為%.2lf",x);
}
void f(float a,float b,float c)
{
printf("方程無實數根\n");
}
main()
{
float a,b,c;
printf("請輸入a,b,c的值\n");
scanf("%f%f%f",&a,&b,&c);
if(b*b-4*a*c>0)
m(a,b,c);
if(b*b-4*a*c==0)
n(a,b,c);
if(b*b-4*a*c<0)
f(a,b,c);
}

⑼ C語言編程:求一元二次方程的解,要求如下圖,咋編

代碼文本:

#include "stdio.h"

#include "math.h"

void fp(double a,double b,double t){

b/=(a+=a);

t=sqrt(t)/a;

printf("x1 = %g x2 = %g ",-b+t,-b-t);

}

void fn(double a,double b,double t){

b/=(a+=a);

t=sqrt(-t)/a;

if(b)

printf("x1 = %g+%gi x2 = %g-%gi ",-b,t,-b,t);

else

printf("x1 = %gi x2 = %gi ",t,-t);

}

void f0(double a,double b){

printf("x1=x2 = %g ",-b/(a+a));

}

int main(int argc,char *argv[]){

double a,b,c,t;

printf("Enter a, b, c(R:)... ");

if(scanf("%lf%lf%lf",&a,&b,&c)==3 && a)

(t=b*b-4*a*c)>0 ? fp(a,b,t) : t<0 ? fn(a,b,t) : f0(a,b);

else

printf("Input error, exit... ");

return 0;

}

⑽ 如何用C語言編寫一程序求解一元二次方程的根

C語言編寫一程序求解一元二次方程的根:

#include<stdio.h>

#include<math.h>

void m(float a,float b,float c)

{

double x1,x2;

x1=(-b+sqrt(b*b-4*a*c))/(2*a);

x2=(-b-sqrt(b*b-4*a*c))/(2*a);

printf("方程的根是%.2lf和%.2lf",x1,x2);

}

void n(float a,float b,float c)

{

double x;

x=(-b)/(2*a);

printf("方程的根為%.2lf",x);

}

void f(float a,float b,float c)

{

printf("方程無實數根 ");

}

main()

{

float a,b,c;

printf("請輸入a,b,c的值 ");

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

if(b*b-4*a*c>0)

m(a,b,c);

if(b*b-4*a*c==0)

n(a,b,c);

if(b*b-4*a*c<0)

f(a,b,c);

}