這個(gè)只能計(jì)算已經(jīng)化簡成aX^2+bX+c=0的一元二次方程
創(chuàng)新互聯(lián)是一家專業(yè)提供樂東黎族企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為樂東黎族眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
int?fun(double?a,double?b,double?c,double?*x1,double?*x2)//由于方程既可能無解也可能有兩個(gè)解,所以不能直接返回X的值
{
double?p=b*b-4*a*c;//計(jì)算Δ
if?(p0)
{
return?0;//方程無解,返回0
}
p=√p//求Δ的平方根
*x1=……//用求根公式計(jì)算X1
*x2=……//用求根公式計(jì)算X2
return?1;//方程有解,返回1
}
就這些了,求根公式和求平方根函數(shù)我忘了,你自己查一下。頭文件要加一個(gè)math.h。
這是我做的
#includestdio.h
#includemath.h
void
main()
//主函數(shù)
{
float
a,b,c,delta,x,x1,x2,realpart,imagpart;
//定義a,b,c,delta,x,x1,x2,x3為浮點(diǎn)型
scanf("%f,%f,%f",a,b,c);
//輸入二次方程系數(shù)a,b,c的值
delta=b*b-4*a*c;
if(fabs(a)=1e-6)
//以下為if語句
{
if(fabs(delta)=1e-6)
printf("此時(shí)方程有兩相同實(shí)根且為%f\n",x=-b/2/a);//delta為0有一根
else
if(delta1e-6)
{
x1=(-b+sqrt(delta))/2/a;
x2=(-b-sqrt(delta))/2/a;
printf("x1=%f,x2=%f\n",x1,x2);//delta0有兩實(shí)根
}
else
{
realpart=-b/(2*a);
imagpart=sqrt(-delta)/(2*a);
printf("has
complex
roots:\n");
printf("%f+%f*i\n",realpart,imagpart);
printf("%f-%f*i\n",realpart,imagpart);//delta0有兩復(fù)根
}
}
else
{
if(fabs(b)=1e-6)
if(fabs(c)=1e-6)
printf("可輸出任意x值\n");
else
printf("此時(shí)方程無意義\n");
else
printf("此時(shí)方程有一根為%f\n",x=-c/b);
}
}
既然你沒寫完,我就不看語法錯(cuò)誤了。關(guān)于你輸出為什么是連在一起,是因?yàn)槟愕谝粋€(gè)printf后沒輸出空格、制表符、回車或換行。你應(yīng)該這樣寫:
printf("b = %lf\n",b);//這樣是換行
printf("b = %lf\r",b);//這樣是回車
printf("b = %lf ",b);//這樣是加一個(gè)空格
printf("b = %lf\t ",b);//這樣是加一個(gè)制表符
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ì)。
#include stdio.h
#include math.h
int main(void)
{
int a, b, c; //定義一元二次方程的三個(gè)數(shù)值;
printf("請(qǐng)依次輸入一元二次方程的三個(gè)參數(shù)a b c,中間以空格隔開\n");
scanf("%d %d %d", a, b, c); //依次輸入一元二次方程的三個(gè)參數(shù)
double delta = b*b - 4*a*c; //定義delta的值為b*b - 4*a*c
double x1 = (-b + sqrt(delta))/(2 * a);
double x2 = (-b - sqrt(delta))/(2 * a);
if (delta0) //delta大于0時(shí),方程有兩個(gè)解
{
printf("一元二次方程有兩個(gè)解\n");
printf("一元二次方程的第一個(gè)解,x1 = %f\n",x1);
printf("一元二次方程的第二個(gè)解,x2 = %f\n",x2);
}
else if (delta ==0) //delta等于0,方程有兩個(gè)相同的解
{
printf("一元二次方程有兩個(gè)相同的解\n");
printf("一元二次方程的解為x1 = x2 =%f\n",x1);
}
else //delta小于0時(shí),方程沒有解
{
printf("一元二次方程沒有解\n");
}
return 0;
}