一元二次方程的一般形式:

分析求解过程:

  • 当a=0,不能构成一元二次方程。
  • 当b=0,不一定能构成等式
  • 当c=0,即为恒等式0=0
  • 当a不等于0,可构成一元二次方程,考虑实根和虚根

基于伪代码,实现一元二次方程的求解程序:

#include <stdio.h>
  #include <stdlib.h>
  #include <math.h>  
  int main() {
	  double a,b,c,d;
	  printf("输入方程的系数a,b,c: ");
	  scanf("%lf%lf%lf",&a,&b,&c);  
	  if(0==a) {
		  if(0==b) {
			  if(0!=c) {
			  	printf("不能构成等式\n");
			  } else { 
			  	printf("这是恒等式0=0\n");
			  }
		  } else {
		  	printf("这是一元一次方程,根为: %lf\n",-c/b);
		  }
	  } else {
        d=b*b-4*a*c;//判别式
		  if(0==d) {
		  	printf("两个相等的根,x1=x2=%lf\n",-b/(2*a));
		  } else if(d>0) {
			  printf("两个不相等的根,x1=%lf, x2=%lf\n",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
		  } else {
			  printf("两个虚根,x1=%lf+%lfi, x2=%lf-%lfi\n",-b/(2*a),sqrt(-d)/(2*a),-b/(2*a),sqrt(-d)/(2*a));
		  }
	  }  
	  system("pause");
	  return 0;
  }

 

更多推荐

【C语言程序设计】C语言实现一元二次方程的求解