当前位置:首页 » 编程语言 » c语言求ax平方十bx十c0的实数解
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言求ax平方十bx十c0的实数解

发布时间: 2022-08-20 09:27:43

⑴ 用c语言求ax^2+bx+c=0 的解,我写的运行不了,帮我找找错误吧(初学者)

有些常识性错误。我一个个给你指出来。

1.
scanf("%f%f%f,&a,%b,%c"); //引号的位置和b、c前面的符号错了
改为 scanf("%f%f%f",&a,&b,&c);

2.printf("方程是:%.3f*x*x+%.3f*x+%.3f=0\n",a,b,c);
//float数据用%f表示就行了,不知道你还搞个.3来干什么

改为 printf("方程是:%f*x*x+%f*x+%f=0\n",a,b,c);

3.
if(a=0) //要用==号来表示比较,=号只能赋值.
if (b=0) //你要学会用{}来表示if的嵌套,不然,程
if(c=0) //序默认的是,若if中的条件不满足,则跳
printf("无穷根"); //过该if语句执行下一行,没起到作用
else printf("无解");
else
printf("%f\n",-c/b);

改为:
if(a==0) //不过建议这里最好写成if(abs(a)<0.00001),因为根据编
{ //程规范化的要求,float型(浮点数)不要与0比较,判断它
if (b==0) //是否为0的方法是,看它是否在一定误差(如0.00001)内
{ //,下同。
if(c==0)
{
printf("无穷根");
}
else printf("无解");
}
else printf("%f\n",-c/b);
}

4.
else
if(d<0)
//else包含的语句如果不只一句,要用{}将它括起来,不然默认只执行第一句
printf("无解");
else
printf ("x1=%f,x2=%f",(-b+sqrt(d))/2/a,(-b-sqrt(d))/2/a);
} //除法的表达有点乱,而且错了

改为:
else
{
if(d<0) printf("无解");
else printf ("x1=%f,x2=%f",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
}
}

楼主具备一定的编程能力,但是细节问题不少啊。好好加油!

⑵ c语言求ax²+bx+c=0的解

#include<stdio.h>

#include<math.h>

#definedeatapow(b,2)-4*a*c

intmain()

{

doublea,b,c;

scanf("%lf%lf%lf",&a,&b,&c);

if(deata<0)printf("方程无解 ");

elseif(deata==0)printf("方程有两个相同的解:%lf",(-b/2*a));

elseif(deata>0)printf("方程有两个不一样的解分别为%lf%lf",(-b+sqrt(deata))/2*a,(-b-sqrt(deata))/2*a);

return0;

}

(2)c语言求ax平方十bx十c0的实数解扩展阅读

二次函数y=ax²+bx+c的意义

1、a的符号确定抛物线的开口方向。

2、a,b共同确定抛物线的对称轴x=﹣b/2a

3、c确定抛物线与y轴的交点(0,c)是在x轴的上方、下方或原点.

4、b²-4ac的符号确定抛物线与x轴的位置关系。

5、若△=b²-4ac>0,设抛物线与x轴的两个交点为A(x₁,0),B(x₂,0),则①A,B的中点(x₁+x₂/2,0)为抛物线的

对称轴与x轴的交点(﹣b/2a,0),即x₁+x₂/2=﹣b/2a

⑶ C语言:求ax^2+bx+c=0方程的解

C语言:求ax^2+bx+c=0方程的解过程如下:

#include <stdio.h>
#include <math.h>
int main()
{

// 定义变量
double a, b, c, determinant, root1,root2, realPart, imaginaryPart;
printf("Enter coefficients a, b and c: ");//提示输入三个参数
scanf("%lf %lf %lf",&a, &b, &c); //输入三个系数
determinant = b*b-4*a*c; //求出δ的值

// 判断如果determinant 大于0,方程就有两个实数根

if (determinant > 0)
{
// sqrt() 函数求出平方根
root1 = (-b+sqrt(determinant))/(2*a);
root2 = (-b-sqrt(determinant))/(2*a);
printf("root1 = %.2lf and root2 = %.2lf",root1 , root2);
}

//有两个相等的实数根
else if (determinant == 0)
{
root1 = root2 = -b/(2*a);
printf("root1 = root2 = %.2lf;", root1);
}
//没有实数根,只有虚数根
else
{
realPart = -b/(2*a); //获取根的实部
imaginaryPart = sqrt(-determinant)/(2*a);//获取根的虚部

printf("root1 = %.2lf+%.2lfi and root2 = %.2f-%.2fi", realPart, imaginaryPart, realPart, imaginaryPart); //打印虚数根
}
return 0;
}

测试验证:

输入 a, b and c: 2.3
4
5.6
根是: -0.87+1.30i and -0.87-1.30i

⑷ C语言编程,求一元二次方程 ax2+bx+c=0 的解,谢谢

#include<iostream>

#include<cmath>

using namespace std;

int main()

{

for (int i=0;i<2;i++)

{

double a,b,c,delta,p,q;

cin>>a>>b>>c;

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

p=-b/(2*a);

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

if (delta>=0)

cout<<p+q<<endl<<p-q<<endl;

else

{

cout<<p<<"+j"<<q;

cout<<endl<<p<<"-j"<<q<<endl;

}

}

return 0;

}

(4)c语言求ax平方十bx十c0的实数解扩展阅读:

return表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。

如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

如果函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值。

⑸ 求一元二次方程ax2+bx+c=0的解。a,b,c为任意实数。c语言编程

#include<stdio.h>

#include<math.h>

int main(void){

double a,b,c;

double x1,x2,x,t,p,q

printf("输入一元二次方程的系数a,b,c:");

scanf("%lf %lf %lf",&a,&b,&c);

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

if(a==0&&b==0&&c==0)

printf("方程无穷解! ");

if(a==0&&b==0&&c!=0)

printf("方程无解! ");

if(a==0&&b!=0){

x=-c/b;

printf("方程有一个根:x=%.2f ",x);

}

if(a!=0&&b!=0){

if(t==0){

x=-b/(2*a);

printf("方程有两个相同的实根:x1=x2=%.2f ",x);

}

if(t>0){

x1=(-b+sqrt(t))/(2*a);

x2=(-b-sqrt(t))/(2*a);

printf("方程有两个不同实根:x1=%.2f x2=%.2f ",x1,x2);

}

if(t<0){

p=(-b)/(2*a);

q=sqrt(-t)/(2*a);

printf("方程有两个不同虚根:x1=%.2f+%.2fi x2=%.2f-%.2fi ",p,q,p,q);

}

}

return 0;

}

(5)c语言求ax平方十bx十c0的实数解扩展阅读

main()

{

float a,b,c;

x09float temp;//计算b*b-4*a*c

x09float num;//开根号

x09float x1,x2;//方程的根

x09printf("Enter a,b,c:");

x09scanf("%f %f %f",&a,&b,&c);

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

x09num=sqrt(temp);

x09if(temp>0) //两个不同实根

x09{

x09x09x1=(-b+num)/(2*a);

x09x09x2=(-b-num)/(2*a);

x09x09printf("x1=%0.2f,x2=%0.2f ",x1,x2);//保留两位输出

x09}

x09if(temp==0)//一个相同实根

x09{

x1=x2=(-b)/(2*a);

printf("x1=x2=%0.2f ",x1);//保留两位输出

x09}

x09if(temp

⑹ 用c语言编写:求方程ax2+bx+c=0的实数根。a,b,c由键盘输入,a≠0且b2-4ac>0;谢谢!

#include<stdio.h>

#include<math.h>

floatx1,x2;

main()

{

voidf1(floata1,floata2,floata3);

voidf2(floatb1,floatb2,floatb3);

voidf3(floatc1,floatc2,floatc3);

floata,b,c,t;

printf("Inputa=,b=,c= ");

scanf("a=%f,b=%f,c=%f",&a,&b,&c); //输入格式为a=1,b=5,c=6;

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

if(fabs(t)<=1e-6) // 判断t==0 的情况。

f1(a,b,c);

else

if(t>1e-6) // t>0的情况

f2(a,b,c);

else

f3(a,b,c);

}

voidf1(floata1,floata2,floata3)

{

x1=x2=-a2/(2*a1);

printf("x1=x2=%f ",x1);

}


voidf2(floatb1,floatb2,floatb3)

{

floatdisc;

disc=sqrt(b2*b2-4*b1*b3);

x1=(-b2+disc)/(2*b1);

x2=(-b2-disc)/(2*b1);

printf("x1=%f x2=%f ",x1,x2);

}


voidf3(floatc1,floatc2,floatc3)

{

floatdisc,t1,t2;

disc=sqrt(4*c3*c1-c2*c2);

t1=-c2/(2*c1);

t2=disc/(2*c1);

printf("x1=%f+%fi ",t1,t2);

printf("x2=%f-%fi ",t1,t2);

}

⑺ 用c语言语言求求方程ax^2+bx+c=0的实数根,abc由键盘输入,a不等于0且b^2—4a

/*一.关于自动解一元二次方程*/
#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!\n");exit (0);}
else printf ("%.0lfX+%.0lf=0\nX=%lf",b,c,-c/b);//a为0时为一元一次方程
else if (0==del) printf ("有唯一解:%lfX^2+%lfX+%lf=0\nX=%lf",a,b,c,-b/(2*a));//del等于0
else if (0>del) printf ("无实数解!");
else printf ("%lfX^2+%lfX+%lf=0\nX1=%lf\nX2=%lf",a,b,c,(-b+sqrt(del))/2*a,(-b-sqrt(del))/2*a);
printf ("\ncontinue?");
scanf ("%d",&k);if (k==1) goto s;
return 0;
}

⑻ 【C语言】求ax^2+bx+c=0方程的解。

scanf("%lf,%lf,%lf",&a,&b,&c);

是lf不是1f,你写错了。