c語言求方程ax2
1. c語言編程求解一元二次方程ax2+bx+c=0的根,要求系數a,b,c從鍵盤輸入在實數范圍內求解
從#include "stdio.h"開始
2. 用c語言編寫:求方程ax2+bx+c=0的實數根。a,b,c由鍵盤輸入,a≠0且b2-4ac>0;謝謝!
#include<stdio.h>
#include<math.h>
floatx1,x2;
main()
{
voidf1(floata1,floata2,floata3);
voidf2(floatb1,floatb2,floatb3);
voidf3(floatc1,floatc2,floatc3);
floata,b,c,t;
printf("Inputa=,b=,c= ");
scanf("a=%f,b=%f,c=%f",&a,&b,&c); //輸入格式為a=1,b=5,c=6;
t=b*b-4*a*c;
if(fabs(t)<=1e-6) // 判斷t==0 的情況。
f1(a,b,c);
else
{
渣橘喚if(t>1e-6) // t>0的情況
f2(a,b,c);
else
f3(a,b,c);
}
}
voidf1(floata1,floata2,floata3)
{
x1伍宏=x2=-a2/(2*a1);
printf("x1=x2=%f ",x1);
}
voidf2(floatb1,floatb2,floatb3)
{
floatdisc;
disc=sqrt(b2*b2-4*b1*b3);
x1=(-b2+disc)/(2*b1);
x2=(-b2-disc)/(2*b1);
printf("x1=%f x2=%f ",x1,x2);
}
voidf3(floatc1,floatc2,floatc3)
{
floatdisc,t1,t2;
disc如凱=sqrt(4*c3*c1-c2*c2);
t1=-c2/(2*c1);
t2=disc/(2*c1);
printf("x1=%f+%fi ",t1,t2);
printf("x2=%f-%fi ",t1,t2);
}
3. C語言求方程ax2+bx+c=0的根。
利用類的形式刻畫一元二次方程:
採用一元二次方程根特性 對2次系數a和delta進行判斷 進而得出根的三種情:
#include<iostream>
#include<cmath>
using namespace std。
支持繼承和重用:
在C++現有類的基礎上可以聲明新類型,這就是繼承和重用的思想。通過繼承和重用可以更談做有效地組織程序結構,明確類間關系,並且充分利用已有的類來完成更復雜、深入的開發。新定義的類為子類,成為派生類。它可以從父類那裡繼承所有非私有的屬性和方法,作為自己的成員。
(3)c語言求方程ax2擴展閱讀:
工作原理:
C++語言的程序因為要體現高性能,所以都是編譯型的。但其開發環境,為了方便測試,將調試環境做成解釋型的。即開發過程中,以解釋型的逐條語句執行方式來進行調試,以編譯型的脫離開發環境而啟動運行的方式來生成程序最終的執行代碼。
生成程序是指將源碼(C++語句)轉換成一個可以運行的應鋒賀用程序的過程。如果程序的編寫是正確的,含基衡那麼通常只需按一個功能鍵,即可搞定這個過程。該過程實際上分成兩個步驟。
4. c語言 編程 求方程ax2+bx+c=0的根,用三個函數分別求當b2-4ac大於0、等於0和小於0時的根,並輸出結果。
#include<stdio.h>攔鄭運
#include<math.h>
main()
{
void x(float,float,float,float);
void y(float,float,float);
float a,b,c,d=0;
printf("輸入a b c的值叢逗:\n");
scanf("%f %f %f",&a,&b,&c);
d=(b*b)-(4.0*a*c);
if (d>0)
x(a,b,c,d);
else if (d==0)
y(a,b,c);
else
printf("無解");
}
void x(float a,float b,float c ,float d)
{
float x1,x2;
x1=(-b+sqrt(d))/簡梁(2.0*a);
x2=(-b-sqrt(d))/(2.0*a);
printf("x1=%.3f\nx2=%.3f\n",x1,x2);
}
void y(float a,float b,float c)
{
float x1;
x1=-b/(2.0*a);
printf("x1=x2=%.3f",x1);
}
5. C語言編程,求一元二次方程 ax2+bx+c=0 的解,謝謝
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
for (int i=0;i<2;i++)
{
double a,b,c,delta,p,q;
cin>>a>>b>>c;
delta=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(fabs(delta))/(2*a);
if (delta>=0)
cout<<p+q<<endl<<p-q<<endl;
else
{
cout<<p<<"+j"<<q;
cout<<endl<<p<<"-j"<<q<<endl;
}
}
return 0;
}
(5)c語言求方程ax2擴展閱讀:
return表示從被調函數返回到主調函數繼續執行,返回時可附帶一個返回值,由return後面的參數指定。return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。
如果函數執行不需要返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。
如果函數名前有返回類型定義,如int,double等就必須有返回值,而如果是void型,則可以不寫return,但這時即使寫了也無法返回數值。
6. 用C語言求方程ax2+bx+c=0的根。
#include<stdio.h>
#include<math.h>
int main ()
{
double a,b,c,d,p;
printf("請輸入a,b,c 的值:");
scanf("%lf%lf%lf",&a,&b,&c);
if(a==0)
printf("不是二次方程");
else
{
d=b*b-4*a*c;
if(d==0)
{
printf("有兩個相等的根 x=%7.2lf ",-b/(2*a));
}
if (d>0)
{
printf("有兩個不相等的根 X1=%7.2lf X2=%7.2lf ",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
}
if(d<0)
{
p=sqrt(-d/(2*a));
printf("有兩個共軛復根 X1=%7.2lfi-%7.2lf X2=%7.2lfi-%7.2lf ",p,b/2,-p,b/2);
}
}
return 0;
}
(6)c語言求方程ax2擴展閱讀:
scanf函數用法:
scanf("輸入控制符",輸入參數);
功能:將從鍵盤輸入的字元轉化為「輸入控制符」所規定格式的數據,然後存入以輸入參數的值為地址的變數中。
用scanf()函數以%s格式讀入的數據不能含有空白符時,所有空白符都被當做數據結束的標志。所以題中函數輸出的值只有空格前面的部分。
如果想要輸出包括空格在內的所有數據,可以使用gets()函數讀入數據。gets()函數的功能是讀取字元串,並存放在指定的字元數組中,遇到換行符或文件結束標志時結束讀入。換行符不作為讀取串的內容,讀取的換行符被轉換為字元串結束標志'