c語言二元一次方程組的
『壹』 c語言求二元一次方程
#include <stdio.h>
#include<math.h>
int main()
{
double a,b,c;
printf("Please input a,b,c\n");
scanf("%f,%f,%f",&a,&b,&c);
double dirt=b*b-4*a*c;
if (a==0)//兩個==
printf("此方程非二元一次方程");
if (dirt==0)//兩個==
{
printf("x1,x2=%f",(-b)/(2*a));
}
else//加大括弧 不解釋
{
printf("x1=%f\n",(-b+sqrt(dirt))/(2*a));
printf("x2=%f\n",(-b-sqrt(dirt))/(2*a));
}
return 0;
}
錯誤太多 太基礎 多看書 仔細點 不解釋
『貳』 用c語言寫二元一次方程
printf("該一元二次方程有兩個解,x1=%f,x2=%f ",x1,x2);//你引號打錯了啊。。。
『叄』 C語言編程,二元一次方程組
首先要找到二元一次方程組的通解,例如:ax+by=m cx+dy=n不難算出 x=(md-bn)/(ad-bc) y=(mc-an)/(bc-ad) 這相當於知道了演算法,接下來就可以編程序了: int main(){int a,b,c,d,m,n;double x=0,y=0;scanf("%d,%d,%d,%d,%d,%d",&a,&b,&c,&d,&m,&n).
『肆』 求一個用c語言編寫的能解二元一次方程組的程序,希望不要是復制粘貼別處的
/*一.關於自動解一元二次方程*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
double a,b,c,del,k;
s:
printf ("a=");scanf ("%lf",&a);
printf ("b=");scanf ("%lf",&b);
printf ("c=");scanf ("%lf",&c);
del=pow (b,2)-4*a*c;
if (a==0) if (b==0&&c==0) printf ("If you want,it can be anything~");
else if (b==0&&c!=0) {printf ("Get out,don't ask me!
");exit (0);}
else printf ("%.0lfX+%.0lf=0
X=%lf",b,c,-c/b);//a為0時為一元一次方程
else if (0==del) printf ("有唯一解:%lfX^2+%lfX+%lf=0
X=%lf",a,b,c,-b/(2*a));//del等於0
else if (0>del) printf ("無實數解!");
else printf ("%lfX^2+%lfX+%lf=0
X1=%lf
X2=%lf",a,b,c,(-b+sqrt(del))/2*a,(-b-sqrt(del))/2*a);
printf ("
continue?");
scanf ("%d",&k);if (k==1) goto s;
return 0;
}
『伍』 用C語言編寫解二元一次方程的程序
假設的情況:
輸入沒有錯誤;
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語言解二元一次方程組
設計思路如下:
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、設計思路:
二元一次方程組是由兩個含有兩個未知數的方程組成的,要求解,就要把二元轉化為一元。由二元一次方程組的解法思想知,要把二元轉化為一元.
實現的功能代碼如下:
因為在求解過程中只有數之間的運算,而沒有整個式子的運算,因此這種方法被廣泛地用於計算機中。
『柒』 我有一個C語言解二元一次方程組的程序需要解釋說明
#include<iostream>//包含頭文件iotream,forcin,cout,endl
usingnamespacestd;//引入名字空間,這樣cin,cout,endl就不需要使用std::
voidprintHelp()//輸出顯示信息(引號內的內容,endl為換行)
{
cout<<"方程組格式:"<<endl
<<"格式ax+by=c"<<endl
<<"格式dx+ey=f"<<endl;
}
intmain()
{
printHelp();//調用函數,顯示信息
doublec;//定義double型變數c,d,e,f,a,b
doubled;
doublee;
doublef;
doublea;
doubleb;
cout<<"a=";
cin>>a;//從鍵盤輸入一個整數放在變數a里
cout<<"b=";
cin>>b;//讀取鍵盤輸入,數據存入b變數中
cout<<"c=";
cin>>c;
cout<<"d=";
cin>>d;
cout<<"e=";
cin>>e;
cout<<"f=";
cin>>f;
if(a*e==b*d)//如果的數據中a乘以e等於b乘以d相等的話
{
cout<<"不存在唯一解!"<<endl;
return-1;//退出程序,退出碼為-1
}
doublex=(e*c-b*f)/(a*e-b*d);//計算右邊的表達式,結果存入x,y
doubley=(c*d-a*f)/(b*d-a*e);
cout<<"x="<<x<<endl;//輸出x,y
cout<<"y="<<y<<endl;
return0;
}
『捌』 用c語言編制求二元一次方程組的根
#include<stdio.h>
#include<math.h>
main()
{
int a,b,c;
float x1,x2,k;
printf("\n input a,b,c:");
scanf("%d%d%d",&a,&b,&c);
if(a==0)
{ x1=-c/b;
printf("\njie:x=%f",x1);
}
else
{ k=sqrt(b*b-4*a*c);
if(fabs(k-0.0)>=1e-6)
{ x1=((-b)+k)/2*a;
x2=((-b)-k)/2*a;
printf("\njie:x1=%8.3f,x2=%8.3f",x1,x2);
}
else
{ x1=(-b)/2*a;
x2=k/2*a;
printf("\njie:x1=%4.2f+%4.2fi ,x2=%4.2f-%4.2fi");
}
}
}
這個我試過了,OK!
『玖』 c語言編寫二元一次方程組求解,菜鳥級,幫忙指出錯誤,謝謝
#include
#include
#include
#include
main()
{
int
x1,x2,x3,y1,y2,y3,d1,d2,d3;
/*賦任意值,已知數和未知數都是整數
*/
signed
int
x=-32767,y=-32767;
/*未知數取值范圍,可修改*/
int
r1=0,r2=0,r3=0;
/*方程是否成立變數*/
int
suc=0;
/*解題是否成功變數*/
for(;x<=32767;x++)
{
for(y=-32767;y<=32767;y++)
{
if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))==d1)
r1=1;
if(sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2))==d2)
r2=1;
if(sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3))==d3)
r3=1;
if(r1&&r2&&r3)
{
suc=1;
break;
}
else
{
r1=0;
r2=0;
r3=0;
}
}
if(suc)
break;
}
if(suc)
printf("x=%d,y=%d",x,y);
/*有解輸出結果*/
esle
printf("no
solution
in
the
range");
/*在限定范圍內無解*/
}