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;
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;
}

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值