這個問題在于,當判別式-1E-6(相當于判別式小于0),求共軛復數(shù)根時,你的x1和x2事先都是double類型(雙精度浮點實數(shù)型),這個類型不能存儲虛數(shù)。再加上rparti沒有定義(因為系統(tǒng)會把rparti作為一個完整的標識符看待,所以你不能那樣寫)
目前成都創(chuàng)新互聯(lián)公司已為上1000家的企業(yè)提供了網(wǎng)站建設、域名、雅安服務器托管、網(wǎng)站改版維護、企業(yè)網(wǎng)站設計、鐘樓網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
我的建議,在求共軛復根時,x1和x2就不要再表示兩個根了,分別用來代表實數(shù)部分和去掉虛數(shù)單位的虛數(shù)部分就行,然后用“字符串組合"的方式輸出。在這種情況下,不要直接只寫一條輸出語句在最后(倒數(shù)第2行),而是在每個判別式的分支都寫一次printf語句比較好。
具體說,就是在前面的if分支和else if分支都寫上輸出(倒數(shù)第二行的輸出去掉),后面else分支寫成
x1=-b/(2*a); x2=sqrt(-disc)/(2*a);
這里的x1和x2代表實數(shù)部分和虛數(shù)部分。
然后寫如下的輸出語句:
printf("x1=%lf+%lfi, x2=%lf-%lfi", x1,fabs(x2),x1,fabs(x2));
注意,虛數(shù)部分x2的符號要去掉(所以用了fabs函數(shù)),而是在字符串中寫上+和-號,以形成共軛復數(shù)的形式
另外,這個程序當中a==0的情況你沒有求解,而是顯示了一行錯誤信息,所以,你的printf更不能放在倒數(shù)第二行了(這已經(jīng)是所有分支的外面了),原因是a==0的時候x1和x2從未賦值
設計思路如下:
1、問題描述:
給定一個二元一次方程組,形如:
a * x + b * y = c;
d * x + e * y = f;
x,y代表未知數(shù),a, b, c, d, e, f為參數(shù)。
求解x,y。
2、數(shù)據(jù)規(guī)模和約定:
0 = a, b, c, d, e, f = 2147483647。
3、設計思路:
二元一次方程組是由兩個含有兩個未知數(shù)的方程組成的,要求解,就要把二元轉化為一元。由二元一次方程組的解法思想知,要把二元轉化為一元.
實現(xiàn)的功能代碼如下:
擴展資料:
C語言解求二元一次方程:(順序消元法)
“消元”是解二元一次方程的基本思路。所謂“消元”就是減少未知數(shù)的個數(shù),使多元方程最終轉化為一元方程再解出未知數(shù)。這種將方程組中的未知數(shù)個數(shù)由多化少,逐一解決的想法,叫做消元思想。
實現(xiàn)代碼如下:
因為在求解過程中只有數(shù)之間的運算,而沒有整個式子的運算,因此這種方法被廣泛地用于計算機中。
//問題有點多,不方便指出,更改如下,對應著看吧,調試過的,沒問題;
#includestdio.h
#includemath.h //使用開方函數(shù)要引入這個頭文件
void main()
{
float a,b,c,d,e,x1,x2,x;
//輸入最好一個一個輸入,一下子輸入容易出毛病
printf("請輸入a:\n");
scanf("%f",a);
printf("請輸入b:\n");
scanf("%f",b);
printf("請輸入c:\n");
scanf("%f",c);
d=b*b-4*a*c;
if (d0)
{
e=(float)sqrt(d);//使用開放函數(shù)得到的是double類型,比float級別高,要強轉為float
x1=(-b+e)/(2*a);
x2=(-b-e)/(2*a);
printf("x1=%.2f,x2=%.2f",x1,x2);//輸出保留兩位小數(shù)
}
else if (d==0)
{
x=-b/(2*a);
printf("x=%.2f",x);
}
else
printf("無解");
printf("\n");
}
本文題目:求二元函數(shù)實數(shù)根c語言 二元實值函數(shù)
網(wǎng)頁網(wǎng)址:http://www.chinadenli.net/article4/dddsioe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號、企業(yè)網(wǎng)站制作、手機網(wǎng)站建設、網(wǎng)站制作、網(wǎng)站導航、用戶體驗
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)