小白提问,求助

现在小白 2018-05-04 12:59:18
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

double fun(double,double);
double fun1(double,double);

int main()
{
cout<<"输入一个整数身高"<<endl;
double Cm,In,Ft;
cin>>Cm;
fun(In,Cm);
fun1(Ft,Cm);
cout<<setiosflags(ios::fixed)<<setprecision(10)<<In<<" "<<Ft<<endl;
return 0;
}

double fun(double In,double Cm)
{
In=Cm/2.54;
return In;
}

double fun1(double Ft,double Cm)
{
Ft=Cm/30.48;
return Ft;
}


为什么输出的值是0.0000000000
...全文
720 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Imlym 2018-05-05
  • 打赏
  • 举报
回复
In = fun(In,Cm); Ft = fun1(Ft,Cm);
qq_40162781 2018-05-04
  • 打赏
  • 举报
回复
你没把返回值赋给变量
penghuahuijuan 2018-05-04
  • 打赏
  • 举报
回复
如果想要改变函数参数的值,则需要将参数改为指针访问或者引用;在子函数中使用该参数时,是对原始参数的复制,所以在子函数中改变该参数的值,并不能改变原始参数的值。
zhouqunhai 2018-05-04
  • 打赏
  • 举报
回复
返回值好像没赋值
棉猴 2018-05-04
  • 打赏
  • 举报
回复
《C++Primer第5版中文版》P187
“每次调用函数时,都会重新创建它们的形参,并用传入的实参对形参进行初始化”
对于
double fun(double In,double Cm)

double fun1(double Ft, double Cm)

这两个函数的参数都是值传递,也就是说,fun()和fun1()中的形参In和Ft与实参
	double Cm, In =0.0, Ft = 0.0;
fun(In, Cm);
fun1(Ft, Cm);

In和Ft是不同的值,所以在fun()和fun1()中改变形参In和Ft,实际上对实参In和Ft没有影响,这两个值仍然是0.0
P189
通过使用引用形参,允许函数改变一个或多个实参的值。
正如3楼所说,可以将fun()和fun1()中的形参改为引用形参,即
double fun(double& In,double Cm)

double fun1(double &Ft, double Cm)

此时,fun()和fun1()中的形参In和Ft与实参In和Ft是同一个变量,在函数中修改了形参In和Ft,实际上就修改了实参In和Ft。

请参考《C++的引用与重载函数》https://blog.csdn.net/hou09tian/article/details/77425358
希望能够帮到你
白色一大坨 2018-05-04
  • 打赏
  • 举报
回复
用引用:

double fun(double &In, double Cm)
{
	In = Cm / 2.54;
	return In;
}

double fun1(double &Ft, double Cm)
{
	Ft = Cm / 30.48;
	return Ft;
}

int main()
{
	cout << "输入一个整数身高" << endl;
	double Cm = 0, In = 0, Ft = 0;
	cin >> Cm;
	fun(In, Cm);
	fun1(Ft, Cm);
	cout << setiosflags(ios::fixed) << setprecision(10) << In << " " << Ft << endl;
	return 0;
}

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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