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

c語言一元二次方程編程

發布時間: 2022-01-26 04:47:35

『壹』 c語言解一元二次方程

多出一句「請正確輸入,謝謝合作!」與「是否正確?(是y\否n)」的原因:
注意一下scanf,scanf並不是像通常所誤解的,認為是直接讀取用戶的當前輸入為輸入值。
而是讀取當前鍵盤緩沖區中的數據為本次輸入值。
所以如果當前的鍵盤緩沖區內仍有數據,那麼就不會接受當前的用戶輸入值。

在這個程序中,
由於鍵盤緩沖區內仍有用戶上次輸入數據時所殘留的回車符(也就是輸入a,b,c時最後敲的回車),
所以scanf("%c",&z); 這一句就將鍵盤緩沖區中的回車讀入,作為z值了。
所以判斷失敗,多出一句「請正確輸入,謝謝合作!」與「是否正確?(是y\否n)」。

改正辦法:
在每句scanf前,加上強制清空鍵盤緩沖區的處理fflush(stdin);,以保證接收的數據的正確性。
這也是一個好的編程習慣。

改過以後的程序:
#include "stdio.h"
#include "math.h"
void main()
{
printf("求方程ax^2+bx+c=0的根:\n");
L: printf("請分別輸入a,b,c的值。\n");
double a,b,c,x1,x2,x,y;
char z;
printf("a=");
fflush(stdin); //強制清空鍵盤緩沖區
scanf("%lf",&a);
printf("b=");
fflush(stdin); //強制清空鍵盤緩沖區
scanf("%lf",&b);
printf("c=");
fflush(stdin); //強制清空鍵盤緩沖區
scanf("%lf",&c);
printf("你所輸入的方程為%lfx^2+%lfx+%lf=0。\n",a,b,c);
M: printf("是否正確?(是y\否n)\n");
fflush(stdin); //強制清空鍵盤緩沖區
scanf("%c",&z);
if (z=='n')
goto L;
else if (z=='y')
{
if ((b*b-4*a*c)>0)
x1=(-b+sqrt(b*b-4*a*c))/(2*a),
x2=(-b-sqrt(b*b-4*a*c))/(2*a),
printf("有兩個不同的實根:\nx1=%lf\nx2=%lf\n",x1,x2),
printf("\n");
if ((b*b-4*a*c)==0)
x1=-b/(2*a),
printf("有兩個相同的實根:\nx1=x2=%lf\n",x1),
printf("\n");
if ((b*b-4*a*c)<0)
x=-b/(2*a),
y=sqrt(4*a*c-b*b)/(2*a),
printf("有兩表個不同的曾根:\nx1=%lf+%lfi\nx2=%lf-%lfi\n",x,y,x,y),
printf("\n");
goto L ;
}
else printf("請正確輸入,謝謝合作!\n");
goto M;
}

『貳』 怎樣用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語言,求一元二次方程的解

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

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>
#include<math.h>
voidmain()
{
doublea,b,c,d,x1,x2;/*sqrt要求用double型,定義用double,另外double和後面變數之間要有空格*/
printf("請輸入系數a、b、c:");
scanf("%lf%lf%lf",&a,&b,&c);/*&b和&c之間要有逗號*/
d=b*b-4*a*c;
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%.2lf x2=%.2lf ",x1,x2);/*輸出用%lf*/
}

『伍』 C語言編程:求1元2次方程的根

#include <stdio.h>

#include <math.h>

int main()

{

double a,b,c; /*定義系數變數*/

double x1,x2,p; /*定義根變數和表達式的變數值*/

printf("請輸入a,b,c:"); /*提示用戶輸入三個系數*/

scanf("%lf%lf%lf",&a,&b,&c); /*接收用戶輸入的系數*/

printf(" "); /*輸出回行*/

p=b*b-4*a*c; /*給表達式賦值*/

x1=(-b+sqrt(p))/(2*a); /*根1的值*/

x2=(-b-sqrt(p))/(2*a); /*跟2的值*/

printf("x1=%f,x2=%f ",x1,x2); /*輸出兩個根的值*/

}

拓展資料

在實際的求法中,一般還需要判斷有無實根,這是可以通過p的值來判斷

『陸』 用C語言求解一元二次方程

#include<stdio.h>
#include<math.h>
intmain()
{
doublea,b,c,d,x1,x2;

while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF)
{
d=b*b-4*a*c;
if(d<0)
{
printf("無解 ");
}
elseif(d==0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("%.2lf%.2lf ",x1,x2);
}
else
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
if(x1>x2)
{
printf("%.2lf%.2lf ",x1,x2);
}
elseif(x1<x2)
{
printf("%.2lf%.2lf ",x2,x1);
}
}
}
return0;
}

『柒』 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<iostream>

#include<cmath>

usingnamespacestd;

intmain()

{floata,b,c;floatx1,x2; cin>a>>b>>c;floatdlt=b*b-4*a*c;if(dlt>=0){x1=-b/2/a+sqrt(dlt)。

/2/ax2=-b/2/a-sqrt(dlt)/2/a。

cout<<a<<"x^2+"<<b<<"x+"<<c<<"=0有兩個實根:";cout<<"x1="<<x1<<",x2="<<x2<<endl;}

else

{x1=-b/2/a;x2=sqrt(-dlt)/2/a;cout<<a<<"x^2+"<<b<<"x+"<<c<<"=0有兩個虛根:"。

cout<<"x="<<x1<<"+/-"<<x2<<"i"<<endl;}

return0。

(8)c語言一元二次方程編程擴展閱讀:

成立條件:

一元二次方程成立必須同時滿足三個條件:

①是整式方程,即等號兩邊都是整式,方程中如果有分母;且未知數在分母上,那麼這個方程就是分式方程,不是一元二次方程,方程中如果有根號,且未知數在根號內,那麼這個方程也不是一元二次方程(是無理方程)。

②只含有一個未知數;

③未知數項的最高次數是2。

『玖』 用C語言編寫求一元二次方程根的程序

#include<stdio.h>
#include<math.h>
intmain()
{
doublea,b,c,disc,x1,x2,realpart,imagpart;
scanf("%lf%lf%lf",&a,&b,&c);
printf("Theequation");
if(fabs(a)<=1e-6)
printf("isnotaquadratic ");
else
{
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
printf("hastwoequalroots:%8.4f ",-b/(2*a));
else
if(disc>0)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("hasdistinctrealroots:%8.4fand%8.4f ",x1,x2);
}
else
{
realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf("hascomplexroots: ");
printf("%8.4f+%8.4fi ",realpart,imagpart);
printf("%8.4f-%8.4fi ",realpart,imagpart);
}
}
return0;
}

『拾』 C語言編寫一個求一元二次方程的實根的程序,該怎麼寫

步驟:

  1. 打開visual C++ 6.0-文件-新建-文件-C++ Source File

2.

定義變數:

#include <stdio.h>

#include <math.h>

void main()

{

double a,b,c; /*定義系數變數*/

double x1,x2,p; /*定義根變數和表達式的變數值*/