发布网友 发布时间:2024-10-04 02:10
共1个回答
热心网友 时间:2024-11-16 22:02
//求根:A*x*x+B*x+C=0 #include<stdio.h> #include<math.h> #include<conio.h> //包含getch()函数 #include<stdlib.h> //包含exit()函数 void Search(double A,double B,double C); //求根函数 void main() { double A,B,C; printf("输入方程系数(A,B,C),数据之间用空格隔开:\n"); while(1) { scanf("%lf%lf%lf",&A,&B,&C); printf("\n方程%.2lf*x*x+%.2lf*x+%.2lf=0,根的情况为:\n",A,B,C); Search(A,B,C); printf("按ESC键盘退出,按任意键继续:\n"); char Click=getch(); if(Click==27) exit(-1); system("cls"); printf("输入方程系数(A,B,C),数据之间用空格隔开:\n"); } } void Search(double A,double B,double C) { double X1,X2; double flag; double a,b; flag=B*B-4*A*C; //一元二次方程根标志判别式 if(A==0) //非一元二次方程 { if(B==0) { if(C==0) printf("这是一个恒等式,不是方程!\n"); else printf("这是一个恒不等式,无解!\n"); } else { X1=(-1.0)*C/(B*1.0); printf("方程是一次方程,有唯一根为: X= %.2lf\n",X1); } } else //是一元二次方程 { if(flag<0) //判别式小于0,无实根,只有虚根 { a=(-1.0*B)/(2.0*A); b=sqrt(flag*(-1.0))/(2.0*A); printf("该方程无实根,虚根为: X1= %.2lf+%.2lfi\tX2= %.2lf-%.2lfi\n",a,b,a,b); } else if(flag==0) { X1=(-B+sqrt(flag))/(2*A); X2=(-B-sqrt(flag))/(2*A); printf("该方程只有一个实根,根为: X= %.2lf\n",X1); } else { X1=(-B+sqrt(flag))/(2*A); X2=(-B-sqrt(flag))/(2*A); printf("该方程有两个实根,分别为: X1= %.2lf\tX2= %.2lf\n",X1,X2); } } }