⑴ 用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,你写错了。