vc 求方程恩

来源:百度知道 编辑:UC知道 时间:2024/06/17 13:00:30
vc 求方程根 用定义函数 下面的程序不对,请帮忙检查一下
#include <stdio.h>
#include <math.h>

float one(float x,float y,float z);
float two(float x,float y,float z);
main()
{ float a,b,c,m;
printf("请输入二次方程的三个系数:");
scanf("%f%f%f",&a,&b,&c);
m=b*b-4*a*c;
if(m>0)
printf("%f,%f",two(a,b,c));
else
if(m=0)
printf("%f",one(a,b,c));
else
printf("error\n");
}

float two(float x,float y,float z)
{ float g,h,p,q,n;
n=sqrt(y*y-4*x*z);
p=-y/(2*x);
q=n/(2*x);
g=p+q;
h=p-q;
return g,h;
}

float one(float x,float y,float z)
{ float g;
g=-y/(2*x);
return g;
}

谢谢

这是修改后,经运行,答案正确。

#include <stdio.h>
#include <math.h>

float one(float x,float y,float z);
void two(float x,float y,float z);
void main()
{
float a,b,c,m;
printf("请输入二次方程的三个系数:");
scanf("%f%f%f",&a,&b,&c);
m=b*b-4*a*c;
if(a==0) //a不能等于0;
{
printf("error\n");
return;
}
if(m>0)
two(a,b,c);
else if(m==0) //应该是双等号;
printf("%f",one(a,b,c));
else
printf("error\n");
}

void two(float x,float y,float z) //本来是有返回值的,不过一个函数好像不可以有两个返回值。
{
double g,h,n,p,q;
n=sqrt(y*y-4*x*z);
p=(-y+n)/(2*x); //之前你的算法也有问题
q=(-y-n)/(2*x);
g=p+q;
h=p-q;
printf("%f %f\n",g,h);
}

float one(float x,float y,float z)
{
float g;
g=-y/(2*x);
return g;
}