① 求一元二次方程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;
}
(1)c语言编程一元二次方程解的个数扩展阅读
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语言编程算一元二次方程解的个数
#include<stdio.h>
intmain()
{
inti,a,b,c,k,dlt,n[100];
scanf("%d",&k);
for(i=0;i<k;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(a){
dlt=b*b-a*c*4;
if(dlt>0)n[i]=2;
elseif(dlt<0)n[i]=0;
elsen[i]=1;
}
elseif(b)n[i]=1;
elsec?n[i]=0:n[i]=-1;
}
for(i=0;i<k;i++)
(n[i]==-1)?printf(" INF"):printf(" %d",n[i]);
return0;
}
//运行示例:
以上为各组数输入后,统一输出结果。当然也可以输入每组数后随着输出该组的结果,那样的话更简单。
③ 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;
}
(3)c语言编程一元二次方程解的个数扩展阅读:
return表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。
如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
如果函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值。
④ C语言,求一元二次方程的解
对于如下的一元二次方程:
ax*x+bx+c=0
设计C语言程序,输入一元二次方程的三个系数a、b、c,求解出该方程的两个根,并且允许用户在程序中多次输入不同的系数,以求解不同的一元二次方程的解。
编程思路分析:
对于该方程,令delta=b^2-4*a*c,从数学的角度来讲,我们需要根据delta的值来判断该方程的根情况:
当delta>=0时,其两个根为实数解,分别为(-b+sqrt(delta))/(2*a)和(-b-sqrt(delta))/(2*a);
当delta<0时,其两个根为复数解,实部皆为-b/(2*a),虚部分别为sqrt(-delta)/(2*a)和-sqrt(-delta)/(2*a)。
其中,sqrt(delta)代表对delta作开根号运算。
在代码设计中,可定义一个结构体Complex存储该方程的根,在该结构体中包括实部和虚部两个变
在程序中,定义两个Complex类型的根x1和x2,当delta>=0时,两个根的虚部为0,否则,分别求解两个根的虚部值。
具体编程如下:
#include"stdio.h"
#include"math.h"
/*求一元二次方程ax*x+bx+c=0的解*/
main()
{floata,b,c,x1,x2,d;
printf("请输入a:");
scanf("%f",&a);
printf("请输入b:");
scanf("%f",&b);
printf("请输入c:");
scanf("%f",&c);
d=b*b-4*a*c;if(d<0)
printf("方程没有实数解。
");
if(d==0){x1=(-b)/(2*a);
printf("x1=%f
",x1);}
if(d>0){x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f
",x1,x2);}}
请输入a:12
请输入b:34
请输入c:4
x1=-0.122985,x2=-2.710348
Pressanykeytocontinue
为迭代序列。
⑤ C语言编程——求一元二次方程的解。。。
报错是因为“{}”不匹配。
对于你后来问道的结果为零的问题。是因为你scanf类型为float,而你定义的类型为double型导致的。建议程序修改如下:
#include <stdio.h>
#include <math.h>
int main()
{
double disc,x1,x2,realpart,imagpart;
float a = 0;
float b = 0;
float c = 0;
printf("输入a,b,c:
");
scanf("%f%f%f",&a,&b,&c);
printf("a=%f,b=%f,c=%f
",a,b,c);
disc=b*b-4*a*c;
if(a==0)
{
printf("error");
}
else
{
if(disc==0)
{
//x1=x2=(-b+sqrt(disc))/(2*a);
printf("x1=x2=%f
",-b/(2*a));
}
else
{
if(disc>0)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("x1=%f,x2=%f
",x1,x2);
}
else
{
realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf("x1=%f+%fi
",realpart,imagpart);
printf("x2=%f-%fi
",realpart,imagpart);
}
}
}
return 0;
}
运行后结果如下:
⑥ C语言编程:求一元二次方程的解,要求如下图,咋编
代码文本:
#include "stdio.h"
#include "math.h"
void fp(double a,double b,double t){
b/=(a+=a);
t=sqrt(t)/a;
printf("x1 = %g x2 = %g ",-b+t,-b-t);
}
void fn(double a,double b,double t){
b/=(a+=a);
t=sqrt(-t)/a;
if(b)
printf("x1 = %g+%gi x2 = %g-%gi ",-b,t,-b,t);
else
printf("x1 = %gi x2 = %gi ",t,-t);
}
void f0(double a,double b){
printf("x1=x2 = %g ",-b/(a+a));
}
int main(int argc,char *argv[]){
double a,b,c,t;
printf("Enter a, b, c(R:)... ");
if(scanf("%lf%lf%lf",&a,&b,&c)==3 && a)
(t=b*b-4*a*c)>0 ? fp(a,b,t) : t<0 ? fn(a,b,t) : f0(a,b);
else
printf("Input error, exit... ");
return 0;
}
⑦ 怎样用C语言编一个解一元二次方程的程序(可以看步骤)!
#include <stdio.h>
#include <math.h>
int main(void)
{
int a, b, c; //定义一元二次方程的三个数值;
printf("请依次输入一元二次方程的三个参数a b c,中间以空格隔开\n");
scanf("%d %d %d", &a, &b, &c); //依次输入一元二次方程的三个参数
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 (delta>0) //delta大于0时,方程有两个解
{
printf("一元二次方程有两个解\n");
printf("一元二次方程的第一个解,x1 = %f\n",x1);
printf("一元二次方程的第二个解,x2 = %f\n",x2);
}
else if (delta ==0) //delta等于0,方程有两个相同的解
{
printf("一元二次方程有两个相同的解\n");
printf("一元二次方程的解为x1 = x2 =%f\n",x1);
}
else //delta小于0时,方程没有解
{
printf("一元二次方程没有解\n");
}
return 0;
}