在 C 中编写 3 个函数来将英尺和英寸转换为米和厘米?

新手上路,请多包涵

我正在尝试编写一个由 3 个函数组成的 C++ 程序,一个用于输入,一个用于计算,一个用于输出。该程序应该将英尺和英寸作为输入,然后将米和厘米的转换值打印回用户。我认为通过引用调用有问题,因为我仍在学习如何正确使用它,无论如何这里是代码

#include<iostream>
using namespace std;
void input(double feet , double inches);
void calc(double &feet , double &inches);
void output(double &feet , double &inches);
void main()
{
 double feet1 , inches1;
 char ans;
 do
 {
  input(feet1,inches1);
  calc(feet1,inches1);
  output(feet1,inches1);
  cout<<"Would you like to calculate again? y/n : ";
  cin>>ans;
 }
 while(ans == 'y' || ans == 'Y');
}
void input(double feet , double inches)
{
 cout<<"Enter feet : ";
 cin>>feet;
 cout<<"Enter inches : ";
 cin>>inches;
}
void calc(double &feet , double &inches)
{
 double meters , centimeters;
 meters = feet * 0.3048;
 centimeters = inches * 2.54;
}
void output(double &feet , double &inches)
{
 calc(feet,inches);
 cout<<"Converted feet to metres : "<<metres;
 cout<<"Converted inches to centimeters : "<<centimeters;
}

原文由 Kareem Youssef 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 414
1 个回答

你有(至少)三个问题:第一个是你修改了传递给 input 函数的参数,但是由于参数是按值传递的(即复制的),你只是在修改副本。您需要通过引用传递参数(您对其他函数执行此操作,即使您不需要它们)。

第二个问题是,在您的 calc 函数中,您将 meterscentimeters 声明为局部变量。一旦函数返回,这些变量就会超出范围并且不能从其他任何地方引用。

第三个问题,这应该会给你一个编译错误,是你尝试使用 metres (检查拼写,它与 calc )和 centimeters 来自输出函数,并且没有声明这些变量。

原文由 Some programmer dude 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题