与神明说


私信TA

用户名:subject

访问量:35440

签 名:

听闻黄昏是个浪漫主义者,难怪夕阳会爱上他

等  级
排  名 333
经  验 5391
参赛次数 0
文章发表 33
年  龄 24
在职情况 在职
学  校
专  业 软件技术

  自我简介:

可有偿指导,可代做毕设,课设,作业,(qq:1159921160,备注来意)

解题思路:

    
    一元二次方程
                   ax²+bx+c=0   (a≠0)
                    
    其求根依据判定式△的取值为三种   ( △=b²-4ac )
    
        1. △>0,方程有两个不相等的实数根;
        
            x1=[-b+√(△)]/2a;   //( △=b²-4ac )
            x2=[-b-√(△)]/2a;
        
        2. △=0,方程有两个相等的实数根;
            x1=x2=[-b+√(△)]/2a= -b/2a ;
        
        3. △<0,方程无实数根,但有2个共轭复根。
            x1=[-b+√(△)*i]/2a;   //( △=b²-4ac )
            x2=[-b-√(△)*i]/2a;

注意事项:

    注意控制格式,保留三位小数输出
    sqrt()开平方函数,参数为正数


参考代码:

#include"iostream" 
#include"cmath"   //调用sqrt()开平方函数
#include"cstdio"  //调用printf()控制格式化输出
using namespace std;

float x1,x2,a,b,c,z;
 
void func1(){  //大于零 
	x1=( -b+sqrt(z) )/( 2*a );
	x2=( -b-sqrt(z) )/( 2*a );
}

void func2(){  //等于零 
	x1=x2=( -b )/( 2*a );
}

void func3(){  //小于零 
	z=sqrt(-z);
	printf("x1=%.3f+%.3fi x2=%.3f-%.3fi\n",-b/(2*a),z/(2*a),-b/(2*a),z/(2*a));
}

int main(){
	cin>>a>>b>>c;
	z=b*b-4*a*c;
	if(z>0){
		func1();
	}else if(z<0){
		func3();
		return 0;
	}else{
		func2();
	}
	printf("x1=%.3f x2=%.3f\n",x1,x2);
	return 0;
}


 

0.0分

48 人评分

  评论区

else if(z<0){
        func3();
        return 0;
    }else{
        func2();
    }
func2和func3可以互换位置吗?
2023-03-18 20:09:51
自己在电脑上时对的,为什么提交运行编译错误?
2022-02-19 00:01:17
#include<stdio.h>
#include<math.h>
float ting;
float _sum2(float a,float b,float c);
float _sum1(float a,float b,float c);
float _sum0(float a,float b,float c);
int main()
{
    float a,b,c;
    scanf("%f %f %f",&a,&b,&c);
    ting=b*b-(4*a*c);
    if (ting>0)
    {
        _sum2(a,b,c);
    }
    if (ting==0)
    {
        _sum1(a,b,c);
    }
    if (ting<0)
    {
        _sum0(a,b,c);
    }
    return 0;
}
float _sum2(float a,float b,float c)
{
    printf("x1=%.3f x2=%.3f",(-b+sqrt(ting))/2*a,(-b-sqrt(ting))/2*a);
}
float _sum1(float a,float b,float c)
{
    printf("x1=%.3f x2=%.3f",-b/2*a,-
2021-12-08 16:48:14
#include<stdio.h>
#include<math.h>
int main()
{
    int a,b,c;
    double x1,x2,n,m,h;
    scanf("%d%d%d", &a, &b,&c);
    n=b*b-4*a*c;
    if(fabs(n)<1e-6)
    {
        x1=x2=-b/(2*a);
    printf("x1= x2=%.3f",x1=x2);
    }
    else if(n>1e-6)
    {
        x1=(-b-sqrt(n))/2*a;
        x2=(-b+sqrt(n))/2*a;
    printf("%.3f %.3f",x1,x2);
    }
    else
    {
    m=-b/(2*a);
    h=sqrt(-n)/(2*a);
    printf("%.3f+%.3fi ",m,h);
    printf("%.3f-%.3fi",m,h);
    }
    return 0;
}
请问这为什莫,,,感谢
2021-03-21 21:04:00
if(z>0){
        func1();
    }else if(z<0){
        func3();
        return 0;//这里的return 0是什么意思
    }else{
        func2();
    }
    printf("x1=%.3f x2=%.3f\n",x1,x2);
    return 0;
}
2021-03-07 09:38:17
cin>>a>>b>>c;
这句啥意思啊大佬
2021-02-24 16:37:03
额(⊙﹏⊙)
2020-05-04 18:31:51
void func3(){  //小于零 
    z=sqrt(-z);
    printf("x1=%.3f+%.3fi x2=%.3f-%.3fi\n",-b/(2*a),z/(2*a),-b/(2*a),z/(2*a));
}
 
z=b*b-4*a*c;
z<0
这段话中的z=sqrt(-z);
是不是错了??

感觉应该是-z=sqrt(-z)
2019-11-04 19:39:17