用C語言編寫解二元一次方程的程式

2021-03-04 07:01:59 字數 6218 閱讀 1941

1樓:梅森琦

假設的情況:

輸入沒有錯誤;

x 總是在前面,y 總是在後面;

不存在某個變數係數為 0 的情況(即總是二元方程);

不考慮小數,其實考慮小數也簡單,你可以自己思考如何實現。

首先,使用 scanf() 將回車之前的整個字串掃瞄進來,放進 str 變數中;

之後,分別以 x y = 為界,找到它們分隔的三個字串,即從 str 的第一位開始迴圈,當遇到 'x' 時,停止並將之前的所有字元存到 x 的系數字串 xstr 中,再從 x 之後開始尋找,遇到 'y' 時將找到的 'x' 與 'y' 之間的字元存到 y 的系數字串 ystr 中,再向後從 '=' 開始直到結束,存為結果字串 sumstr。

這樣,我們得到的三個字串都具有相同的格式,一定可以通過某種方式將其轉換為乙個數字,使用同乙個函式就可以做到。

對於某個字串來說,它可能是以負號 '-' 開頭,也可能以正號開頭 '+',也可能沒有符號,也可能為空,分別考慮:以負號開頭的,將其作為負數,以正號開頭或沒有符號的,將其作為正數;為空的字串將其視為 1。

擷取符號之後,如果沒有剩餘字元了,將其視為 1,再與符號相乘,就是最終結果。

如果還有剩餘,那麼之後的字元都是純數字了(不考慮小數),從字串的最後一位往前開始迴圈,下標記為 i(從0開始一直到最前面的數字位數),每一位字元記為 ch,則 n=(int)(ch-'0') 就是當前字元所代表的數字,用 n*pow(10, i) 就得到了當前數字的實際值,把所有的乘積都加起來,就得到了總的係數的絕對值,再乘以符號,就得到了系數值。

實現了這個部分之後,假設的情況也可以一一實現了,無非就是標記歸屬的問題。我沒有貼**是因為我看到你問的問題非常認真,我希望你可以通過我的描述自己去實現它。這裡用到了一些字串相關的函式,例如 strlen(str) 可以獲得 str 字串的長度,strncpy(dest, src, 3) 可以將 src 字串的前三位拷貝到 dest 字串中,strncpy(dest, src+3, 3) 可以將 src 字串的 4~7 位拷貝到 dest 字串中。

怎麼用c語言編乙個程式解二元一次方程

2樓:key徒

這個只能計算已經化簡成ax^2+bx+c=0的一元二次方程int fun(double a,double b,double c,double *x1,double *x2)//由於方程既可能無解也可能有兩個解,所以不能直接返回x的值

p=√p//求δ的平方根

*x1=……//用求根公式計算x1

*x2=……//用求根公式計算x2

return 1;//方程有解,返回1

}就這些了,求根公式和求平方根函式我忘了,你自己查一下。標頭檔案要加乙個。

3樓:匿名使用者

可以把function(x)*function(y)<0作為判斷條件進行迴圈。。。

4樓:匿名使用者

我給弟弟寫過乙個,還有解題步驟的

5樓:匿名使用者

怎麼用c語言編乙個中考作弊的程式啊!!??體育也要

6樓:匿名使用者

直接求根公式啊~~~~~~~~

7樓:

#include

#include

void main()

else   }}

8樓:匿名使用者

這不是有公式嗎,直接用公式

如何用c語言解二元一次方程組

9樓:加百列

設計思路如下:

1、問題描述:

給定乙個二元一次方程組,形如:

a * x + b * y = c;

d * x + e * y = f;

x,y代表未知數,a, b, c, d, e, f為引數。

求解x,y。

2、資料規模和約定:

0 <= a, b, c, d, e, f <= 2147483647。

3、設計思路:

二元一次方程組是由兩個含有兩個未知數的方程組成的,要求解,就要把二元轉化為一元。由二元一次方程組的解法思想知,要把二元轉化為一元.

實現的功能**如下:

10樓:跪著作揖

#include

void main(  )}}

擴充套件資料

c語言解二元一次方程組的其他方法:

給定乙個二元一次方程組,形如:

a * x + b * y = c    ,    d * x + e * y = f;

其中x,y代表未知數,a, b, c, d, e, f為引數,求解x,y。

#include

int main( )

11樓:杜哥是個小天才

a1x+a2y=a3

b1x+b2y=b3

main()

拓展資料c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平台的特性,以乙個標準規格寫出的c語言程式可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平台。

12樓:匿名使用者

輸入格式輸入包含六個整數: a, b, c, d, e, f;

輸出格式輸出為方程組的解,兩個整數x, y。

樣例輸入例:3 7 41 2 1 9

樣例輸出

例:2 5

資料規模和約定

0 <= a, b, c, d, e, f <= 2147483647

拓展資料編譯器gcc,gnu組織開發的開源免費的編譯器mingw,windows作業系統下的gccclang,開源的bsd協議的基於llvm的編譯器visual c++ :: cl.exe,microsoft vc++自帶的編譯器

整合開發環境

codeblocks,開源免費的c/c++ idecodelite,開源、跨平台的c/c++整合開發環境orwell dev-c++,可移植的c/c++idec-free

light table

visual studio系列

hello world

下面是乙個在標準輸出裝置 (stdout) 上,印出 "hello, world!" 字串的簡單程式。類似的程式,通常作為初學程式語言時的第乙個程式:

13樓:啦啦啦咯哦

#include

#include

#include

int main()

源**截圖:

14樓:匿名使用者

首先要找到二元一次方程組的通解,例如:

ax+by=m

cx+dy=n

不難算出

x=(md-bn)/(ad-bc)

y=(mc-an)/(bc-ad)

這相當於知道了演算法,接下來就可以程式設計序了:

int main()

return 0;

}輸入係數,就可以計算了

15樓:匿名使用者

你沒有說清楚條件哦,x1和x2一定要是整數嗎?如果是的話 由題意能看出x1是大於0,小於35的 那麼可以用迴圈來做

void main()}}

16樓:匿名使用者

解二元一次方程組的解法

17樓:匿名使用者

||#include "stdio.h"

void fun(double a,double b){double re[2];

re[0]=re[1]=0.0;

0)||(a[1]==0.0&&b[1]==0.0))

{ printf("

用c語言寫個求解二元一次方程組的程式

18樓:匿名使用者

你說的是一般二元一次方程組嗎?

如:ax+by+c=0?

19樓:匿名使用者

|||double int fun(int a,int b)else

return re;}

c語言編寫乙個求一元二次方程的實根的程式。

20樓:棉花表表

步驟:開啟visual c++ 6.0-檔案-新建-檔案-c++ source file

2.定義變數:

#include

#include

void main()

21樓:陸捷

#include

#include

int main(void)

else if(d = 0)

else

return 0;

}望採納,謝謝~

22樓:無影之子

#include"stdio.h"

#include"stdlib.h"

#include"math.h"

int main()

d=pow(b,2)-4*a*c;

if(d>0)

else if(d==0)

else

printf("無解");

return 0;}

23樓:匿名使用者

#include

#include

int main()

else if(d = 0)

else if(d < 0)

return 0;}

24樓:匿名使用者

#include

#include

int main()

else if (t==0)

else

return 0;}

25樓:尺蠖丨蚩

#include

#include

void main()

else if(d==0)

printf("x1=x2=%.2f\n",(-b)/(2*a));

else

printf("方程沒有實根\n");}

26樓:小啊小金人

我的媽,答案錯了,別誤人子弟好不好,連我這個學生都能看出來

27樓:逆塵

吐槽:書上已基本給出了思路,就是照著敲的事。

答案:#include

#include

int main(void)

else if(!d)

else

printf("無根\n");

return 0;}

28樓:虎ai晴

#include

#include

#include//呼叫標準庫函式exit(),終止整個程式的執行,返回作業系統

#define eps 1e-6 //很小的數,接近0

int main()

disc = b * b - 4 * a * c;

p = - b / (2 * a);

q = sqrt(fabs(disc)) / (2 * a);

if(fabs(disc) <= eps) //若判別式為0,則輸出兩個相等實根

else if(disc > eps) //若判別式為正值,則輸出兩個不等實根

else //若判別式為負值,輸出兩個共軛復根

return 0;}

29樓:進擊的糰子

這樣做事是可以的。親,希望我的回答能夠幫助到你。祝您冬至快樂,生活愉快,在2023年祝您和您的家人幸福安康,萬事如意,身體健康,闔家歡樂!

二元一次方程,二元一次方程

解 用加減代入法 下式減上式,得 2x 18係數化為一,得 x 9把x 9帶入上式,得 9 y 22 移項,合併同類項,得 y 13所以原方程組的解為 x 9y 13 下式減去上式 就是兩個方程含有x的項分別相減 含有y的項分別相減 右邊係數也是一樣 得出2x 18,解得x 9.然後把x 9帶入上面...

如何化簡二元一次方程?二元一次方程化簡!

答 二元一次方程的簡便解法如下 整體代入法 整體代入法是用含未知數的表示式代入方程進行消元。有些方程組並不一定能直接應用這種解法,不過,我們可以創造條件進行整體代入。2.換元法 換元法就是設出乙個輔助未知數,分別用含有這個未知數的 代數式表示原方程組中未知數的值,把二元一次方程組轉化為一元一次方程組...

二元一次方程組,二元一次方程求根公式?

問題 求出該計程車的起步價和超過3公里以後每公里的收費標準。設起步價x,超過3供以後的計價每公里y元。8 3 y x 11 3 y x 18 x 5y x 8y 18.2 1 2 得 3y y 代入1 得 x 元。起步價6元,超過3公里後每公里收費元。二元一次方程組的解法!提出問題 計算起步價 計算...