【问题标题】:c++ primer plus chapter 2 ex7 - cant solve itc++ 入门加第 2 章 ex7 - 无法解决
【发布时间】:2013-12-20 18:23:19
【问题描述】:

我正在尝试解决第 2 章中的 ex7(Prata 的 c++ 入门加)

任务是:

编写一个程序,要求用户输入小时值和分钟值。 然后 main() 函数应该将这两个值传递给一个 void 类型的函数,该函数显示 以下示例运行中所示格式的两个值: 输入小时数:9 输入分钟数:28 时间:9:28

我的代码是:

#include <iostream>


void hours(int);
void minutes(int);


int main()

{
    using namespace std;
    int hhrs;
    int mnts;
    cout << "Enter hours: "; cin >> hhrs; cout << endl;
    cout << "Enter minutes: "; cin >> mnts; cout << endl;

    hours(hhrs);
    minutes(mnts);

    cout << "Time is: " << hours << ":" << minutes << endl;

    cin.get();
    cin.get();
    return 0;
}

void hours(int n)
{
    using namespace std;
    cout << n;
}

void miutes(int m)
{
    using namespace std;
    cout << m;
}

错误是:

1) Error 1 error LNK2019: unresolved external symbol "void __cdecl minutes(int)" (?minutes@@YAXH@Z) 在函数_main G:\~DEV#c++\he\he\Source.obj

2) 错误2 error LNK1120: 1 unresolved externals G:\~DEV#c++\he\Debug\he.exe 1

【问题讨论】:

  • 你拼错了miutes
  • 而不是using namespace std; 在每个范围内,你可以把它放在程序的开头。但是it's a bad practice? 你应该改用using std::cout

标签: c++


【解决方案1】:

除了你的拼写错误(miutes 而不是minutes),你也没有按照问题的要求做:

编写一个程序,要求用户输入小时值和分钟值 value.Main() 函数然后应该将这两个值传递给一个类型 void 函数,以显示的格式显示两个值 以下示例运行:输入小时数:9 输入小时数 分钟:28 时间:9:28

这要求您输入 2 个值,并将这些值传递给 single 函数,该函数将以所需的格式打印它们。

【讨论】:

  • 我正要这么说。有一个加号。
  • 谢谢!还有一个问题,为什么会这样打印? - puu.sh/5SYXi.jpg我的意思是“时间”之前的“2​​10”
  • 您必须出示更新后的代码才能回答这个问题。
  • @user3050045 您正在打印两次值:cout &lt;&lt; n; cout &lt;&lt; m; cout &lt;&lt; "Time is: " &lt;&lt; n &lt;&lt; ":" &lt;&lt; m &lt;&lt; endl; 应该只是 cout &lt;&lt; "Time is: " &lt;&lt; n &lt;&lt; ":" &lt;&lt; m &lt;&lt; endl;
【解决方案2】:

您在函数定义中拼错了minutes

void miutes(int m)
     ^^^^^^

请注意,您的 hoursminutes 函数的作用完全相同。两者兼有是没有意义的。您可以有一个名为print 的函数。但是,由于他们所做的只是调用另一个函数 (cout.operator&lt;&lt;),所以我会一起摆脱它们。只需在需要时执行cout &lt;&lt; hhrscout &lt;&lt; mnts。不过,您的问题确实需要您将 both 小时和分钟的打印移到一个函数中。

【讨论】:

    【解决方案3】:

    除了void miutes(int m)中的拼写错误之外,逻辑不需要两个单独的函数来调用。

    如果您检查以下行:

    cout

    这里的“小时”和“分钟”将始终计算为True。所以最终它会在输出中显示 1:1,而不是 9:28(根据您的输入)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      • 2021-02-24
      • 2017-03-17
      • 2016-10-29
      • 2021-09-04
      相关资源
      最近更新 更多