GSE_ 2021-05-05 07:35 采纳率: 72.7%
浏览 76
已采纳

c语言 变量delta无论如何都小于0

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>//开根号函数 sqrt();
void qeou()
{
	/* 一般形式:ax^2+bx+c=0 */
	double a,b,c,x1,x2,delta;//二次项系数、一次项系数、常数项和两根 
	
	printf("请输入二次项系数:");
	scanf("%f",&a);
	printf("\n请输入一次项系数:");
	scanf("%f",&b);
	printf("\n请输入常数项:");
	scanf("%f",&c);
	if(a == 0)//判断是否为一元二次方程 
	{
		printf("你输入的不是一元二次方程\n");
		return;
	}
	
	delta = (b*b)-(4*a*c);//判别式b^2-4ac
	 
	if(delta  >=  0)//判断能否使用求根公式 
	{
		double temp,num;
		num = delta;
		temp = sqrt(delta);
			
		if((int)(temp) == temp)//判断根号△是否为整数 
		{
			double fenmu;
			num = temp;
			num = (int)(num);
			fenmu = 2*a;//求根公式的分母为2a 
			
			if((int)(num-b) == num-b)//分子是否为整数 
			{
				if((int)(fenmu) == fenmu)//分母是否为整数 
				{
					/*在一般形式下,求根公式为整数*/ 
					x1 = (num-b)/fenmu;
					x1 = (int)(x1);//由于x1,x2为整数,所以把x1,x2换为整型 
					x2 = (-num-b)/fenmu;
					x2 = (int)(x2);
					printf("\nx1=%d",x1);
					printf("\nx1=%d\n",x2);
					return; 
				}
				else
				{
					/*在一般形式下,分母不是整数,但是分子为整数*/
					int fenzi;
					fenzi = num-b;
					printf("\nx1=(%d)/%.3f",fenzi,fenmu);
					fenzi = -num-b;
					printf("\nx2=(%d)/%.3f\n",fenzi,fenmu);
					printf("自行化简\n");
					return;
				}	
			}
			else
			{
				/*在一般形式下,分子不为整数*/ 
				printf("\nx1=(%d-%.3f)/%.3f",num,b,fenmu);
				printf("\nx2=(%d-%.3f)/%.3f\n",num,b,fenmu);
				printf("自行化简");
				return;
			}		
		}
		else
		{
			/*在一般形式下,根号△(变量num)不为整数*/
			printf("\nx1=(sqrt(%.5f)-%.3f)/%.3f)",num,b,2*a);
			printf("\nx2=(sqrt(%.5f)-%.3f)/%.3f)\n",num,b,2*a);
			printf("自行化简");
			return;
		}			
	} 
	if(delta  <  0)//△<0,无实数根 
	{
		printf("无实数根\n"); 
		return;
	} 
}

int main()
{
	qeou();
	system("pause");
	return 0;
}
  • 写回答

4条回答 默认 最新

  • CSDN专家-Time 2021-05-05 07:36
    关注

    double 的格式控制符是 %lf

            printf("请输入二次项系数:");
    	scanf("%lf", &a);
    	printf("\n请输入一次项系数:");
    	scanf("%lf", &b);
    	printf("\n请输入常数项:");
    	scanf("%lf", &c);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 matlab中使用gurobi时报错
  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂