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

一元二次方程c語言實驗報告

發布時間: 2022-09-21 03:47:58

c語言一元二次方程的解

(1)當b²-4ac<0時,方程有沒有實根,
所以最後一個else這么寫

else
{
printf("b²-4ac<0,該方程沒有實根\n",x1,x2);
}
(2)當b²-4ac<0時,方程有虛根,
所以最後一個else這么寫

else
{
realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);
printf("x1=%.2f+%.2fi\tx2=%.2f-%.2fi\n",realpart,imagpart,realpart,imagpart);
}

還有你的兩不同實根部分忘了除以(2*a)了

❷ 用c語言求解復數域一元二次方程

#include<stdio.h>
#include<math.h>
int main(){
int a,b,c;
int t;
//t就是b^2-4ac判斷它和0的大小決定是解否是復數
printf("推出請按Ctrl+c,輸入非數字後果自付.\n");
//Ctrl+c是 windows下的文件結束符.在命令行下不是拷貝快捷鍵
while(1){
a=b=c=t=0;
//初始化
scanf("%d %d %d",&a,&b,&c);
//輸入數據
if(a==0){printf("input error!\n");continue;}
//如果輸入二次項系數為零顯示告訴用戶
t=b*b-4*a*c;
if (t<0){
printf("x1=%.6lf+%.6lfi\n",-b/2.0/a,sqrt(-t)/2/a);
printf("x1=%.6lf-%.6lfi\n",-b/2.0/a,sqrt(-t)/2/a);

}else {
printf("x1=%.6lf+0i\n",-b/2.0/a+sqrt(t)/2/a);
printf("x1=%.6lf+0i\n",-b/2.0/a-sqrt(t)/2/a);
}
}
return 0;}

❸ 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>
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語言求解一元二次方程的解怎麼寫

您好!很高興為您解答。

原代碼中的scanf和printf中的%要放在d和lf的前面才對,改正後運算無誤~

#include <stdio.h>
#include <math.h>
void main ()
{
double x1;//x1,x2分別為方程的2個解
double x2;
double melt;
int a;
int b;//初始化ABC的三個變數
int c;
printf("請輸入a b c三個數的值:");
scanf("%d %d %d",&a, &b ,&c);//輸入ABC的時候需要空格
melt = b*b - 4*a*c;//初始化melt的值
if (melt>0)
{ x1=(-b + sqrt(melt))/(2*a);
x2=(-b - sqrt(melt))/(2*a);
printf ("2個解,x1 = %lf,x2 = %lf\n",x1,x2);
}

else if (melt==0)
{
x1 = (-b )/(2*a);
x2 = x1;
printf("1個解,x1 = %lf,x2 = lf%\n",x1,x2);
}
else
{
printf("無解\n");
}
}

望採納~如您還有不解,歡迎追問~

❻ c語言求解一元二次方程

1、本題要先判斷a,如果a=0,則不是一元二次方程。
2、首先要判斷d是否小於0,則只能有虛數解,d小於0時,就不能去開平方,否則會出錯。
3、按照以上思路重新修改你的程序。

❼ C語言實驗題——一元二次方程

#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,x1,x2; //輸入三個實數,所以a,b,c是double類型
scanf("%lf %lf %lf",&a,&b,&c);
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
if(x1>=x2)
printf("%.2f %.2f\n",x1,x2);
else
printf("%.2f %.2f\n",x2,x1);

return 0;
}

❽ c語言程序設計 設計一個求解一元二次方程的函數,在主函數中輸入方程的系數!!!急!!!!!!!!

/*
供參考!
*/
# include <stdio.h>
# include <math.h>

void calcu(double a,double b,double c);

int main(void)
{
double a, b, c;
char ch;

do
{
printf("請輸入一元二次方程的三個系數:\n");
printf("a=\t");
scanf("%lf", &a);

printf("b=\t");
scanf("%lf", &b);

printf("c=\t");
scanf("%lf", &c);

calcu(a,b,c);

printf("繼續(Y/y),輸入其他退出: ");
scanf(" %c", &ch);
printf("\n");

} while ('y'==ch || 'Y'==ch);

printf("成功退出!\n");

return 0;
}

void calcu(double a,double b,double c)
{
double delta;
double x1, x2;
delta = b*b - 4*a*c;

if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
printf("有兩個解,x1 = %lf, x2 = %lf\n", x1, x2);
}
else if (0 == delta)
{
x1 = x2 = (-b) / (2*a);
printf("有唯一解,x1 = x2 = %lf\n", x1, x2);
}
else
{
printf("無實數解!\n");
}
}

/*
在c++6.0中的運行結果是:
-------------------------
請輸入一元二次方程的三個系數:
a= 1
b= -3
c= 2
有兩個解,x1 = 2.000000, x2 = 1.000000
繼續(Y/y),輸入其他退出: y

請輸入一元二次方程的三個系數:
a= 1
b= 1
c= 1
無實數解!
繼續(Y/y),輸入其他退出: y

請輸入一元二次方程的三個系數:
a= 1
b= -2
c= 1
有唯一解,x1 = x2 = 1.000000
繼續(Y/y),輸入其他退出: n

成功退出!
--------------------------------

*/

❾ 用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語言程序(紅色部分有標注)

#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