c语言主函数中任意输入三个double类型的数值abc。然后调用自定义函数

如题所述

这出题的老师,连一元二次方程、二元一次方程都混起来了。

#include<stdio.h>
#include<math.h>
void fun(double a,double b,double c)
{double d=b*b-4*a*c;
 if(d<0)
 {printf("没有实数根\n");
  return;
 }
 if(d>0)
   printf("x1=%lf\nx2=%lf\n",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
 else
   printf("x1=x2=%lf\n",-b/(2*a));
}
int main()
{ double a,b,c;
  scanf("%lf%lf%lf",&a,&b,&c);
  fun(a,b,c);
  return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-21
#include <>
#include <math.h>
//计算并输出的根
void fun(double a, double b, double c){
    double dt,x1,x2;

    //首先判断a是否为0
    if(a == 0.0){
        printf("输入的不是一元二次方程!");
        return;
    }
    //计算判定式并求解
    dt = b * b - 4 * a * c;

    if(dt < 0.0){
        printf("方程无!");
    }else if(dt == 0.0){
        printf("方程有2个相同的实数根:\n x1 = x2 = %lf",-b / 2 * a);
    }else{
        dt = sqrt(dt);
        x1 = (- b + dt) / 2 * a;
        x2 = (- b - dt) / 2 * a;
        printf("方程有2个不同的实数根:\n x1 = %lf\n x2 = %lf",x1,x2);
    }

    printf("\n");
}

int main()
{
    double a,b,c;
    scanf("%lf %lf %lf",&a, &b, &c);

    fun(a,b,c);
    return 0;
}

本回答被网友采纳
第2个回答  2018-11-21
int main(int argc, char** argv) {

double a, b, c;
scanf("%d", "%d", "%d", &a, &b, &c);
Fun(a, b, c);

return 0;
}
void Fun(double a, double b, double c)
{
if( b * b - 4 * a *c > 0)
{
printf("有两个不相等的实根");
/ /公式计算
}
else if(b * b - 4 * a *c == 0)
{
printf("有两个相等的实根");
//公式计算 具体的根值
}
else
{
printf("无实数根");
}
}
第3个回答  2018-11-21
#include<stdio.h>
#include<math.h>
void fun(double a,double b,double c)
{
double disc,s,x1,x2,p,q,x;
printf("请输入a,b,c:");
scanf("%lf%lf%lf",&a,&b,&c);
disc=sqrt(b*b-4*a*c);
p=-b/(2*a);
q=sqrt(b*b-4*a*c)/(2*a);
x1=p+q;
x2=p-q;
x=-c/b;
if(a==0)
printf("x=%5.2lf\n",x);
else
{
if(disc<0)
printf("无实根");
else if(disc==0)
printf("x1=x2=%5.2lf\n",x1);
else
printf("x1=%5.2lf\nx2=%5.2lf\n",x1,x2);
}
}
void main(){
fun(double a,double b,double c);

}追问

有错误

第4个回答  2018-11-21
刚到

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网