函數(shù)名字隨便你自己取,函數(shù)類型看你求解的是什么,如果是小數(shù)就double,float,整形的話就int,long,函數(shù)聲明卸載main()函數(shù)的前面
邕寧網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),邕寧網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為邕寧1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的邕寧做網(wǎng)站的公司定做!
給你重寫一個(gè)你對(duì)照看——
#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;
}
運(yùn)行樣例:
有問題續(xù)問。
#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("無數(shù)解\n");
else
printf("無解\n");
}else
printf("x=%lf,y=%lf\n",m2/m1,-m3/m1);
}
這個(gè)是先求行列式的值,然后判斷其是否為0,討論解的情況,當(dāng)有唯一解的時(shí)候,輸出x和y的值。
val()函數(shù)用于計(jì)算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)? ? ? ? //?這里不需要在設(shè)置a!=0這個(gè)條件
printf("該一元二次方程無實(shí)數(shù)解");
else?if(a=!0z=0)? ? ? ? //?同樣不需要設(shè)置a!=0這個(gè)條件
{? ? ? ? //?如果一個(gè)分支中有多條語句,一定要用{}
printf("該一元二次方程有兩個(gè)相同的實(shí)數(shù)解");
x=(z-b)/2a;
y=x;
}
else
printf("該一元二次方程有兩個(gè)不同的實(shí)數(shù)解");
x=(z-b)/2a;
y=(b*(-1)+z*(-1))/2a;
return?x,y;? ? ? ? //?return?只能返回一個(gè)值,這個(gè)語句的結(jié)果是返回y的值,具體請(qǐng)看逗號(hào)表達(dá)式
}? ? ? ? //?缺少}
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)有三個(gè)int類型的參數(shù),()中放置的是向函數(shù)傳遞的參數(shù)?。?!
}
你可以在函數(shù)hanshu()中直接打印出結(jié)果而不是返回出來,因?yàn)橐粋€(gè)函數(shù)只能返回一個(gè)值!
如下:
#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("該一元二次方程無實(shí)數(shù)解");
? else?if(z=0)
? {
? ? ? ? ? x=(z-b)/2a;
? ? ? ? ? y=x;
? ? ? ? ? printf("該一元二次方程有兩個(gè)相同的實(shí)數(shù)解:?%lf?%lf",?x,?y);
? }
? else
? {
? ? ? ? ? ? ? ? x=(z-b)/2a;
? ? ? ? ? ? ? ? y=(b*(-1)+z*(-1))/2a;
? ? ? ? ? ? ? ?printf("該一元二次方程有兩個(gè)不同的實(shí)數(shù)解:?%lf?%lf",?x,?y);
? }
}
int?main(void)
{
? double?a,b,c;
? scanf("%lf?%lf?%lf",a,b,c);
? hanshu(a,b,c);
? ? ? ? ? return?0;
}
如果你想在主函數(shù)main()中使用計(jì)算結(jié)果,可以利用指針!
沒有。C語言沒有現(xiàn)在的函數(shù)可以用來解方程,畢竟C語言不是專門用來進(jìn)行數(shù)值計(jì)算的語言。如果要進(jìn)行科學(xué)計(jì)算,最好學(xué)其他的語言。像lingo, matlab,fortran等都是用于科學(xué)計(jì)算的。
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=±根號(hào)p)如果方程能化成(nx+m)=p(p≥0)的形式,那么nx+m=±p。
簡潔的語言:
C語言包含的各種控制語句僅有9種,關(guān)鍵字也只有32個(gè),程序的編寫要求不嚴(yán)格且以小寫字母為主,對(duì)許多不必要的部分進(jìn)行了精簡。
實(shí)際上,語句構(gòu)成與硬件有關(guān)聯(lián)的較少,且C語言本身不提供與硬件相關(guān)的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統(tǒng)所支持的各類庫進(jìn)行編程,故c語言擁有非常簡潔的編譯系統(tǒng)。
提供的控制語句具有結(jié)構(gòu)化特征,如for語句、if...else語句和switch語句等。可以用于實(shí)現(xiàn)函數(shù)的邏輯控制,方便面向過程的程序設(shè)計(jì)。
標(biāo)題名稱:c語言中求方程的函數(shù) c語言求方程解
文章轉(zhuǎn)載:http://jinyejixie.com/article48/hpcpep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站導(dǎo)航、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站策劃、軟件開發(fā)、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)