c语言程序设计 设计一个求解一元二次方程的函数,在主函数中输入方程的系数!!!急!!!!!!!!

如题所述

/*
供参考!
*/
# include <stdio.h>
# include <math.h>

void calcu(double a,double b,double c);

int main(void)
{
double a, b, c;
char ch;

do
{
printf("请输入一元二次方程的三个系数:\n");
printf("a=\t");
scanf("%lf", &a);

printf("b=\t");
scanf("%lf", &b);

printf("c=\t");
scanf("%lf", &c);

calcu(a,b,c);

printf("继续(Y/y),输入其他退出: ");
scanf(" %c", &ch);
printf("\n");

} while ('y'==ch || 'Y'==ch);

printf("成功退出!\n");

return 0;
}

void calcu(double a,double b,double c)
{
double delta;
double x1, x2;
delta = b*b - 4*a*c;

if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
printf("有两个解,x1 = %lf, x2 = %lf\n", x1, x2);
}
else if (0 == delta)
{
x1 = x2 = (-b) / (2*a);
printf("有唯一解,x1 = x2 = %lf\n", x1, x2);
}
else
{
printf("无实数解!\n");
}
}

/*
在c++6.0中的运行结果是:
-------------------------
请输入一元二次方程的三个系数:
a= 1
b= -3
c= 2
有两个解,x1 = 2.000000, x2 = 1.000000
继续(Y/y),输入其他退出: y

请输入一元二次方程的三个系数:
a= 1
b= 1
c= 1
无实数解!
继续(Y/y),输入其他退出: y

请输入一元二次方程的三个系数:
a= 1
b= -2
c= 1
有唯一解,x1 = x2 = 1.000000
继续(Y/y),输入其他退出: n

成功退出!
--------------------------------

*/
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-20
//用函数调用求一元二次方程的根
#include <stdio.h>
#include <math.h>
void main()
{
void greater(double a, double b, double c);
void equal(double a, double b,double c);
void little(); //进行函数声明
int a,b,c;
double compare;
scanf("%d %d %d",&a,&b,&c);
compare=b*b-4.0*a*c;
if(compare>0)
greater(a,b,c);
if(compare==0)
equal(a,b,c);
if(compare<0)
little(); //调用函数
}
void greater(double a, double b, double c) //当函数有两个根时调用此函数
{
double x1,x2,compare;
compare=b*b-4*a*c;
x1=(-b+sqrt(compare))/(2.0*a);
x2=(-b-sqrt(compare))/(2.0*a);
printf("this equetion has two root:x1=%.3lf,x2=%.3lf\n",x1+0.0005,x2+0.0005);
}
void equal(double a, double b, double c) //当函数有一个根时调用此函数
{
double x;
x=-b/2.0*a;
printf("this equetion has only one root:x=%.3lf\n",x+0.0005);
}
void little()
{

printf("this equetion hasn't root!\n"); //当函数无根是调用,输出this equetion hasn't root!
}

C语言编写一个程序求解一元二次方程ax2+bx+c=0的根。要求系数a,b,c从...
int main(){ double a, b, c, x1, x2, disc;printf("请输入一元二次方程的系数a, b, c: ");scanf("%lf %lf %lf", &a, &b, &c);disc = b * b - 4 * a * c;if (disc > 0) { x1 = (-b + sqrt(disc)) \/ (2 * a);x2 = (-b - sqrt(disc)) \/ (2 *...

用C语言编写一个程序,计算一元二次方程的解(x1,x2)。一元二次方程:Ax2...
按顺序输入a,b,c include "stdio.h"include "stdlib.h"include "math.h"int main(){ float a,b,c;scanf("%f",&a);scanf("%f",&b);scanf("%f",&c);printf("%f\\n",(-b+sqrt(b*b-4*a*c))\/2\/a);printf("%f",(-b-sqrt(b*b-4*a*c))\/2\/a);system("pause");return ...

C语言编写一个求一元二次方程的实根的程序。
double x1,x2,p; \/*定义根变量和表达式的变量值*\/ printf("请输入a,b,c:"); \/*提示用户输入三个系数*\/ scanf("%lf%lf%lf",&a,&b,&c); \/*接收用户输入的系数*\/ printf("\\n"); \/*输出回行*\/ p=b*b-4*a*c; \/*给表达式赋值*\/ x1=(-b+sqrt(p))\/(2...

怎样用C语言编一个解一元二次方程的程序(可以看步骤)!
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 ...

C语言编写一个程序求解一元二次方程ax2+bx+c=0的根。要求系数a,b,c从...
<math.h>int main(){ float a, b, c, jud; printf ("输入二次方程的三个系数(第一个不能为0):"); scanf ("%f %f %f", &a, &b, &c); jud = b * b - 4 * a * c; \/\/根的判别式 if (jud > 0) { printf ("该方程有两个不相等的实根:\\n")...

求一元二次方程的根c语言程序求一元二次方程的根c语言
1、#include #include void main( void ){ double a,b,c,d; printf("请输入一元二次方程的三个系数:"); scanf("%lf %lf %lf",&a,&b,&c); d=b*b-4*a*c; if(d<0){printf("方程没有实根。2、"); return 1;} if(d==0){printf("方程有重根 x=%lf",-...

求写一个C语言的计算一元二次方程解的函数!
include "stdio.h"#include <math.h>main(){float x1,x2,a,b,c;double p;scanf("%f,%f,%f",&a,&b,&c);if(b*b-4*a*c<0)printf("error");else{p=sqrt(b*b-4*a*c);if(b*b-4*a*c==0){x1=x2=(-b)\/(2*a);printf("%f,%f",x1,x2);}else{x1=(-b+p)\/(2*a...

求一个求一元二次方程解的C语言程序 在线等!!!
\/*求一元二次方程ax*x bx c=0的解*\/ main(){ float a,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("方程没有实数解。\\n");if (d==0){ x1=(...

怎样用C语言编一个解一元二次方程的程序?
这个只能计算已经化简成aX^2+bX+c=0的一元二次方程 int fun(double a,double b,double c,double *x1,double *x2)\/\/由于方程既可能无解也可能有两个解,所以不能直接返回X的值{ double p=b*b-4*a*c;\/\/计算Δ if (p<0) { return 0;\/\/方程无解,返回0 } p=√...

编写求解一元二次方程的C语言程序(红色部分有标注)
if(a==0.0 && b==0.0 && c==0){printf("系数a,b,c不能构成方程!\\n");return 0;}if(a==0){x1=x2=-c\/b;printf("x1=x2=%.4f\\n",x1);return 0;}delta =b*b - 4*a*c; \/\/此处填写delta的计算表达式(这里为红色部分)if( delta >= 0)\/\/此处填写表达式 如果delta>=0...

相似回答