函数不用指针怎么返回多个值?

chenjiao322 2010-09-04 05:03:37
刚看完函数那章,课后第二个习题求二次方程的根用函数实现。但是两个根的话怎么返回值?求大大提点一二!!不要是指针实现的,因为偶还没看到那里。。。
...全文
174 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenjiao322 2010-09-04
  • 打赏
  • 举报
回复
谢谢11楼的代码,直接给数字也可以,不用for循环给1,2了,汗。不过2次函数有2根,1根,和两个复根3种情况。我自己去完善下,谢谢勒~
chenjiao322 2010-09-04
  • 打赏
  • 举报
回复
10楼的看不懂,7楼的想法应该可以的,在主函数里加个for循环应该可以搞定了!
某某9 2010-09-04
  • 打赏
  • 举报
回复
返回多个值
一般是传参数的引用进去
zotin 2010-09-04
  • 打赏
  • 举报
回复
好事做到底

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

double root(double a, double b, double c, int i)
{
double d = sqrt(b*b - 4*a*c);
if(i == 1)
return (-b + d) / (2*a);
else
return (-b - d) / (2*a);
}
int main()
{
double a, b, c;
printf("输入方程ax^2 + bx + c = 0中的系数a b c: ");
scanf("%lf%lf%lf", &a, &b, &c);
printf("x1 = %lf, x2 = %lf\n", root(a, b, c, 1), root(a, b, c, 2));
return 0;
}
/*
运行情况:

输入方程ax^2 + bx + c = 0中的系数a b c: 1 -3 2
x1 = 2.000000, x2 = 1.000000
*/
翅膀又硬了 2010-09-04
  • 打赏
  • 举报
回复
例如:
void test(int& a)
{
a=100;
}
int main()
{
int b;
test(b);
//b就等于100啦。
}

// 别忘了给分啊。。
libinfei8848 2010-09-04
  • 打赏
  • 举报
回复
增加作为返回值的参数[out, revel]
翅膀又硬了 2010-09-04
  • 打赏
  • 举报
回复
传参数的引用进去。在函数里面赋值,在外面就能用了。
zotin 2010-09-04
  • 打赏
  • 举报
回复
不用指针,不用结构体,的确有点麻烦。
但办法还是有的,2次方程的求根公式不是
d = sqrt(b*b + 4*a*c);
x1 = (-b + d)/(2*a);
x2 = (-b - d)/(2*a);
吗?
给函数增加一个参数i,当i = 1时,返回x1,当i = 2时返回x2,不就结了。
justkk 2010-09-04
  • 打赏
  • 举报
回复
用全局变量,函数只返回根的数目
chenjiao322 2010-09-04
  • 打赏
  • 举报
回复
但是这个题目出在这章。。应该可以实现的吧。。不然不是很蛋疼。。。
pengzhixi 2010-09-04
  • 打赏
  • 举报
回复
那就学到后面再说
chenjiao322 2010-09-04
  • 打赏
  • 举报
回复
结构体也没看到。。。所以困扰 了。
maoxing63570 2010-09-04
  • 打赏
  • 举报
回复
用结构体可以返回多个值
pengzhixi 2010-09-04
  • 打赏
  • 举报
回复
学结构体了没

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧