函數名字隨便你自己取,函數類型看你求解的是什么,如果是小數就double,float,整形的話就int,long,函數聲明卸載main()函數的前面
邕寧網站建設公司成都創新互聯,邕寧網站設計制作,有大型網站制作公司豐富經驗。已為邕寧1000+提供企業網站建設服務。企業網站搭建\外貿營銷網站建設要多少錢,請找那個售后服務好的邕寧做網站的公司定做!
給你重寫一個你對照看——
#include?"stdio.h"
#include?"math.h"
void?zero(float?a,float?b){
printf("x1?=?%f\n",-b/2/a);
printf("x2?=?%f\n",-b/2/a);
}
void?one(float?a,float?b,float?d){
printf("x1?=?%f\n",(-b+d)/2/a);
printf("x2?=?%f\n",(-b-d)/2/a);
}
void?two(float?a,float?b,float?d){
printf("x1?=?%f%+fi\n",-b/2/a,d/2/a);
printf("x2?=?%f%+fi\n",-b/2/a,-d/2/a);
}
int?main(int?argc,char?*argv[]){
float?a,b,c,dlt;
printf("Input?a,?b,?c(R:?all)...\n");
scanf("%f%f%f",a,b,c);
if((dlt=b*b-4*a*c)==0)
zero(a,b);
else?if(dlt0){
one(a,b,sqrt(dlt));
}
else
two(a,b,sqrt(-dlt));
return?0;
}
運行樣例:
有問題續問。
#includestdio.h
double
val(double
a00,double
a11,double
a01,double
a10)
{
return
a00*a11-a01*a10;
}
void
main()
{
double
a1,b1,c1,a2,b2,c2;
double
m1,m2,m3;
printf("Please
input
a1,b1,c1\n");
scanf("%lf%lf%lf",a1,b1,c1);
printf("Please
input
a2,b2,c2\n");
scanf("%lf%lf%lf",a2,b2,c2);
m1
=
val(a1,b2,a2,b1);
m2
=
val(c1,b2,c2,b1);
m3
=
val(c1,a2,c2,a1);
if(m1==0){
if(m2==0
m3==0)
printf("無數解\n");
else
printf("無解\n");
}else
printf("x=%lf,y=%lf\n",m2/m1,-m3/m1);
}
這個是先求行列式的值,然后判斷其是否為0,討論解的情況,當有唯一解的時候,輸出x和y的值。
val()函數用于計算2x2行列式的值。
有不明白的地方可以追問,望采納:)
#include?"stdio.h"
void?hanshu(int?a,int?b,int?c){
int?x,y,z;
z=b*b-4*a*c;
if(a==0)
printf("該方程不是一元二次方程");
else?if(a!=0z0)? ? ? ? //?這里不需要在設置a!=0這個條件
printf("該一元二次方程無實數解");
else?if(a=!0z=0)? ? ? ? //?同樣不需要設置a!=0這個條件
{? ? ? ? //?如果一個分支中有多條語句,一定要用{}
printf("該一元二次方程有兩個相同的實數解");
x=(z-b)/2a;
y=x;
}
else
printf("該一元二次方程有兩個不同的實數解");
x=(z-b)/2a;
y=(b*(-1)+z*(-1))/2a;
return?x,y;? ? ? ? //?return?只能返回一個值,這個語句的結果是返回y的值,具體請看逗號表達式
}? ? ? ? //?缺少}
void?main()
{
int?a,b,c;
scanf("%d?%d?%d",a,b,c);? ? ? ? //在使用變量之前要先定義
printf("%d?%d",hanshu(x),hanshu(y));? ? ? ? //?你定義的hanshu(int?a,int?b,?int?c)有三個int類型的參數,()中放置的是向函數傳遞的參數!!!
}
你可以在函數hanshu()中直接打印出結果而不是返回出來,因為一個函數只能返回一個值!
如下:
#include?stdio.h
void?hanshu(dobule?a,?double?b,?double?c)
? {
? double?x,y,z;
? z=b*b-4*a*c;
? if(a==0)
? ? ? ? ? printf("該方程不是一元二次方程");
? else?if(z0)
? ? ? ? ? printf("該一元二次方程無實數解");
? else?if(z=0)
? {
? ? ? ? ? x=(z-b)/2a;
? ? ? ? ? y=x;
? ? ? ? ? printf("該一元二次方程有兩個相同的實數解:?%lf?%lf",?x,?y);
? }
? else
? {
? ? ? ? ? ? ? ? x=(z-b)/2a;
? ? ? ? ? ? ? ? y=(b*(-1)+z*(-1))/2a;
? ? ? ? ? ? ? ?printf("該一元二次方程有兩個不同的實數解:?%lf?%lf",?x,?y);
? }
}
int?main(void)
{
? double?a,b,c;
? scanf("%lf?%lf?%lf",a,b,c);
? hanshu(a,b,c);
? ? ? ? ? return?0;
}
如果你想在主函數main()中使用計算結果,可以利用指針!
沒有。C語言沒有現在的函數可以用來解方程,畢竟C語言不是專門用來進行數值計算的語言。如果要進行科學計算,最好學其他的語言。像lingo, matlab,fortran等都是用于科學計算的。
c語言一元二次方程編程是#include?iostream 。#include?cmath。using?namespace?std。int?main()。{float?a,b,c;float?x1,x2; cinabc;float?dlt=b*b-4*a*c;if(dlt=0){x1=-b/2/a+sqrt(dlt)。/2/ax2=-b/2/a-sqrt(dlt)/2/a。
形如x=p或(nx+m)=p(p≥0)的一元二次方程可采用直接開平方的方法解一元二次方程.如果方程化成x2=p的形式,那么可得x=±p;(x2=p,x=±根號p)如果方程能化成(nx+m)=p(p≥0)的形式,那么nx+m=±p。
簡潔的語言:
C語言包含的各種控制語句僅有9種,關鍵字也只有32個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。
實際上,語句構成與硬件有關聯的較少,且C語言本身不提供與硬件相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
提供的控制語句具有結構化特征,如for語句、if...else語句和switch語句等。可以用于實現函數的邏輯控制,方便面向過程的程序設計。
標題名稱:c語言中求方程的函數 c語言求方程解
文章轉載:http://m.2m8n56k.cn/article48/hpcpep.html
成都網站建設公司_創新互聯,為您提供電子商務、網站導航、移動網站建設、網站策劃、軟件開發、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯