2

我有一个练习,我应该输入多个以零结尾的数字,然后用它们执行不同的计算。到目前为止,我已经创建了一个do..while用于存储数字的循环。有人告诉我,这可以在没有数组的情况下完成,如果那是错误的,请立即告诉我。我需要做的功能是将所有数字加在一起,找到最大数字和第二大数字,以及所有数字的中值(平均值)。我认为我应该使用不同的库,也可能有不同的选项。请帮助我了解不同的库以及如何使用它们。我在网上找到的搜索结果并没有给出我正在寻找的答案,因为我找不到与我类似的问题。到目前为止,这是我的代码:

#include<iostream>
#include<string>

using namespace std;

int sumCalc (int);
int midValCalc (int);
int secHighCalc (int);
int highestCalc (int);
void printCalc ();


int main()  {

    int nums;
    cout << "Input numbers, quit with 0: ";

    do {
        cin >> nums;
        cout << nums << " ";    // This is just to see the result    
    }
    while (nums != 0);

    return 0;
}

这个添加功能有什么问题?

int sumCalc (int total)   {

total = 0;
while (nums != 0) {
    total += nums;
}

return nums;

}

4

2 回答 2

5

我认为您不需要任何不寻常的库。

想想你如何在心里计算这些东西。例如,如果您想汇总我读给您的数字列表,您只需跟踪运行总数,并在添加时忘记每个数字 - 这样只需要一个变量。如果您想再次记录输入的最大数字,您只需记住迄今为止看到的最大数字,并在获得新数字时进行比较。

您可能可以解决这些问题。

于 2013-07-15T16:13:24.313 回答
1

如果您需要获取平均值以及最高和第二高的数字,则不需要数组(您不需要存储数字)

本质上,您可以跟踪用户输入的最高和第二高数字,如果用户输入的数字高于这些数字,您可以进行相应调整。

至于平均平均值,您还可以保留一个运行总和和计数(输入的数字#),您可以在需要时使用它来计算平均值。

于 2013-07-15T16:16:37.237 回答