C语⾔进阶-⼀元⼆次⽅程求解(内含源代码)
C语⾔进阶
(⼀)前⾔:
在学习c语⾔基础语法后我们需要通过项⽬的训练进⾏进阶提升,⼀个⼩的项⽬能够使初学者对编程语⾔掌握的更牢固、进⼀步熟悉编程的逻辑,所以在这⾥例出了项⽬的题⽬要求、算法分析以及完整的程序代码供初学者学习。
(⼆)题⽬:
⼀元⼆次⽅程的求解:求⽅程(a*x)^2+b*x+c=0的根,⽤3个函数分别求当b^2-4*a*c⼤于0、等于0和⼩于0时的根并输出结果。从主函数输⼊a、b、c的值。
(三)算法设计:
int main():在主函数中提⽰并输⼊a,b,c的值,判断⼀元⼆次⽅程根是⼤于零还是等于零或者⼩于零,从⽽调⽤三种情况对应的函数。
void equalzero(double a,double b,double c):通过主函数调⽤,该函数处理的是当⽅程根等于零的情况,计算出结果,并且输出。
void greatertzero(double a,double b,double c):通过主函数调⽤,该函数处理的是当⽅程根⼤于零的情况,计算出结果,并且输出。
void lesstzero(double a,double b,double c):通过主函数调⽤,该函数处理的是当⽅程根⼩于零的情况,计算出结果,并且输出。
(四)完整代码实现:
# include <stdio.h>
# include <math.h>
//根等于零的情况
void equalzero(double a,double b,double c)
{
double dlt,x1,x2;//dlt为函数的根x1,x2为函数的结果dlt=b*b-4*a*c;
printf("⽅程的根为%f\n",dlt);
x1=(-b)/(2*a)+sqrt(dlt)/(2*a);
printf("⽅程的解为%f",x1);
}
//根⼤于零的情况
void greatertzero(double a,double b,double c)
{
double dlt,x1,x2;//dlt为函数的根x1,x2为函数的结果dlt=b*b-4*a*c;
printf("⽅程的根为%f\n",dlt);
x1=(-b)/(2*a)+sqrt(dlt)/(2*a);
x2=(-b)/(2*a)-sqrt(dlt)/(2*a);
printf("⽅程的解为%f,%f",x1,x2);
}
//根⼩于零的情况
void lesstzero(double a,double b,double c)
{
double dlt;
一个完整的c语言程序dlt=b*b-4*a*c;
printf("⽅程的根为%f\n",dlt);
printf("⽅程的根⼩于零,⽅程⽆解");
}
int main()
{
int a,b,c,d;
printf("请输⼊a,b,c的值\n");
scanf("%d %d %d",&a,&b,&c);
printf("得到a=%d,b=%d,c=%d\n",a,b,c);
d=b*b-4*a*c;
if(d==0)
equalzero(a,b,c);
if(d>0)
greatertzero(a,b,c);
if(d<0)
lesstzero(a,b,c);
return 0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论