c语言不是一元二次方程,用指针求解一元二次方程,为何答案总是0.0 (┬_┬)...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include

void GetCoefficients(int *aptr, int *bptr, int *cptr);

void SolveEquation(int a, int b, int c, double *x1ptr, double *x2ptr);

void DispRoots(double x1, double x2);

int main()

{

int a, b, c;

double x1, x2;

GetCoefficients(&a, &b, &c);

SolveEquation(a, b, c, &x1, &x2);

DispPoots(x1, x2);

return 0;

}

void GetCoefficients(int *aptr, int *bptr, int *cptr)

{

scanf("%d%d%d", &aptr, &bptr, &cptr);

}

void SolveEquation(int a, int b, int c, double *x1ptr, double *x2ptr)

{

double d1, d2, n;

int m;

while(a != 0 && b != 0 && c != 0)

{

int m = b * b - 4 * a * c;

if(m >= 0)

{

n= 1.0 * m;

d1 = (-b * 1.0 + (double)sqrt(n)) / (2.0 * a);

d2 = (-b * 1.0 - (double)sqrt(n)) / (2.0 * a);

}

*x1ptr = d1;

*x2ptr = d2;

}

}

void DispRoots(double x1, double x2)

{

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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值