c ++ primer plus第2章ex7 - 无法解决它

时间:2013-12-20 18:23:19

标签: c++

我试图解决第2章(Prata的c ++引物加)

中的ex7

任务是:

  

编写一个程序,要求用户输入小时值和分钟值   然后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)错误1错误LNK2019:未解析的外部符号“void __cdecl minutes(int)”(?minutes @@ YAXH @ Z)在函数_main G中引用:\ ~DEV #c ++ \ he \ he \ Source.obj < / p>

2)错误2错误LNK1120:1个未解析的外部G:\ ~DEV#c ++ \ he \ Debug \ he.exe 1

3 个答案:

答案 0 :(得分:4)

除了拼写错误(miutes而不是minutes)之外,您还没有做出问题所在:

  

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

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

答案 1 :(得分:2)

你在函数定义中拼错了minutes

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

请注意,您的hoursminutes功能完全相同。拥有它们都没有意义。您可以拥有一个名为print的函数。但是,由于他们所做的只是调用另一个函数(cout.operator<<),我只是将它们全部放在一起。只需在需要时cout << hhrscout << mnts。您的问题确实需要您将 小时和分钟的打印移动到函数中。

答案 2 :(得分:0)

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

另外,如果您查看以下行:

  

cout&lt;&lt; “时间是:”&lt;&lt;小时&lt;&lt; “:”&lt;&lt;分钟&lt;&lt; ENDL;

此处“小时”和“分钟”将始终评估为True。因此最终它将在输出中显示1:1,而不是9:28(根据您的输入)。