题目来源:大工慕课 链接
作者:Caleb Sung
题目要求
计算ax^2+bx+c=0的解,使用三个函数分别计算delta大于、等于、小于0时的根并分别存储在三个子文件中,在主函数中输入a b c的值并调用函数。
参考代码
四个.c文件需要放置在同一文件夹下。
主文件
#include"stdio.h"
#include"math.h"
#include"delta_upper0.c"
#include"delta_equal_to0.c"
#include"delta_lower0.c"
int main(){
float a, b, c, delta;
printf("请输入a b c的值,以计算ax^2+bx+c=0的解。\n");
scanf("%f%f%f", &a, &b, &c);
printf("\n计算%.2fx^2 + %.2fx + %.2f = 0\n", a, b, c);
if(b*b-4*a*c>0)
delta_upper0(a, b, c);
if(b*b-4*a*c==0)
delta_equal_to0(a, b, c);
if(b*b-4*a*c<0)
delta_lower0(a, b, c);
return 0;
}
delta_upper0.c
void delta_upper0(float a, float b, float c){
printf("解为:x1=%.6f x2=%.6f", (-b+sqrt(b*b-4*a*c))/(2*a), (-b-sqrt(b*b-4*a*c))/(2*a));
}
delta_equal_to0.c
void delta_equal_to0(float a, float b, float c){
printf("解为:x1=x2=%.6f", (-b)/(2*a));
}
delta_lower0.c
void delta_lower0(float a, float b, float c){
printf("解为:x1=%.6fi x2=%.6fi", (-b+sqrt(-b*b+4*a*c))/(2*a), (-b+sqrt(-b*b+4*a*c))/(2*a));
}