解题思路:
输入a,b,c以文件结束符结束;

根据题目输出形式,先输出(-b+sqrt(pow(b,2)-4*a*c))/2*a; 再输出( -b-sqrt(pow(b,2)-4*a*c))/2*a;

这道题不用考虑解为复数的情况比较简单


注意事项:
1):输出两位小数,空格隔开,最后换行符;

2):即使是x1==x2也要输出两个;

3):x1=(-b+sqrt(pow(b,2)-4*a*c))/(2*a);
        x2=(-b-sqrt(pow(b,2)-4*a*c))/(2*a);

要是除以(2*a)才正确,或者/2/a;

写为/2*a提交也正确,但实际不合理,不科学;

参考代码:

#include<stdio.h>
#include<math.h>
void function(double a,double b,double c);
/*------------------------------------------------*/

int main()
{
  double a,b,c;
  while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF)
  {
    function(a,b,c);
  }
  return 0;
}

/*------------------------------------------------*/
void function(double a,double b,double c)
{
  double x1,x2;

   if(pow(b,2)-4*a*c>0)
       {x1=(-b+sqrt(pow(b,2)-4*a*c))/(2*a);
        x2=(-b-sqrt(pow(b,2)-4*a*c))/(2*a);
       }

       if(pow(b,2)-4*a*c==0)
         {x1=(-b)/(2*a);x2=x1;}

         printf("%.2f %.2f\n",x1,x2);
}

别忘点赞哦-.-

点赞(24)
 

0.0分

26 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 9 条评论

wjz努力学c 1年前 回复TA
#include  <stdio.h>
#include  <math.h>
int  main(void)
{

        int a,b,c;
        scanf("%d %d %d",&a,&b,&c);
        float k;
        k=sqrt(b*b-4*a*c);
        float x1,x2;
        x1=(-b+k)/2.0*a;
        x2=(-b-k)/2.0*a;
        printf("%.2lf %.2lf",x1,x2);



        return  0;
}
新城已无旧少年 3年前 回复TA
@新城已无旧少年 好吧,我没看见要比较大小,大意了。
新城已无旧少年 3年前 回复TA
@新城已无旧少年 我寻思这样不更简单??
新城已无旧少年 3年前 回复TA
#include<stdio.h>
#include<math.h>
int main()
{
	double a,b,c,x1,x2;
	scanf("%lf%lf%lf",&a,&b,&c);
	x1=(-b+pow(b*b-4*a*c,0.5))/2*a;
	x2=(-b-pow(b*b-4*a*c,0.5))/2*a;
	printf("%.2lf %.2lf",x1,x2);
	return 0;
}
月儿会弯 3年前 回复TA
#include <stdio.h>
#include <math.h>
int main()
{
	int i,j,k;
	float x1,x2;
	float detax;
	scanf("%d%d%d",&i,&j,&k);
	detax = sqrt((double)j*j-4*i*k);
	x1 = ((-j)+detax)/2*i;
	x2 = ((-j)-detax)/2*i;
	if(x1>x2)
	printf("%.2f %.2f",x1,x2);
	else
	printf("%.2f %.2f",x2,x1);
	return 0;
 }
tw 4年前 回复TA
#include<stdio.h>
#include<math.h>
int main()
{
	int a = 0, b = 0, c = 0;
	double x1 = 0, x2 = 0;
	scanf("%d%d%d",&a,&b,&c);
	if (a > 0 && (b * b - 4 * a * c) >= 0)
	{
		x1 = (-b - sqrt(pow(b,2) - 4.0 * a * c)) / (2.0 * a);
		x2 = (-b + sqrt(pow(b,2) - 4.0 * a * c)) / (2.0 * a);
		printf("%.2lf\t%.2lf",x2,x1);
	}
	else
		printf("错误");
}
望尽天涯路 5年前 回复TA
@maxiao ...如果考虑复数怎么搞???
Manchester 6年前 回复TA
@maxiao 谢谢提醒已改正
maxiao 6年前 回复TA
(-b+sqrt(pow(b,2)-4*a*c))/2*a 不应该是/2/a么?