您的位置 首页 > 数码极客

c语言如何返回3个参数c语言如何实现返回上一级!

通常,我们了解到的函数只能有一个返回值,由return 语句返回。

一个一元二次方程有二个解,如何让此函数返回二个解。答案是采用指针作为函数的参数。

函数原型可设计为:

void SolveQuadratic(double a, double b, double c,

double *px1, double *px2)

函数的调用:

SolveQuadratic, 4.5, 2.1, &x1, &x2)

SolveQuadratic(a, b, c, &x1, &x2)

并不是每个一元二次方程都有两个不同根,有的可能有两个等根,有的可能没有根。函数的调用着如何知道x1和x2中包含的是否是有效的解?

让函数返回一个整型数。该整型数表示解的情况:

#include <iostream>

#include <conio.h>

#include <cmath>

using namespace std ;

int SolveQuadratic(double a,double b,double c, double *px1,double *px2)

{

double disc, sqrtDisc;

if(a == 0) return 3; //不是一元二次方程

disc = b * b - 4 * a * c;

if( disc < 0 ) return 2; //无根

if ( disc == 0 ) { *px1 = -b /(2 * a); return 1;} //等根

//两个不等根

sqrtDisc = sqrt(disc);

*px1 = (-b + sqrtDisc) / (2 * a);

*px2 = (-b - sqrtDisc) / (2 * a);

return 0;

}

int main()

{

double a,b,c,x1,x2;

int result;

cout << "请输入a,b,c: ";

cin >> a >> b >> c;

result = SolveQuadratic(a, b, c, &x1, &x2);

switch (result)

{

case 0: cout << "方程有两个不同的根:" << "\n" << "x1 = " << x1 << "\n" << "x2 = " << x2; break;

case 1: cout << "方程有两个等根:" << x1; break;

case 2: cout << "方程无根"; break;

case 3: cout << "不是一元二次方程";

}

getch();

return 0;

}

运算结果:

请输入a,b,c: 12 -2028 62370

方程有两个不同的根:

x1 = 128.577

x2 = 40.4234

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“c语言如何返回3个参数,c语言如何实现返回上一级,c语言如何返回多个值,c语言返回两个参数,c语言返回多个参数”边界阅读