2013-07-15 25 views
2

我有一个练习,我应该输入多个以零结束的数字,然后对它们执行不同的计算。到目前为止,我创建了一个do..while用于存储数字的循环。我被告知,如果没有阵列,这是可能的,如果那是错的,请马上告诉我。我需要做的功能是将所有数字相加,找到最高数字和第二高数字,以及所有数字的中间(平均)值。 我认为我应该使用不同的库,也可能有不同的选项。 请帮我理解不同的库以及如何使用它们。 我在网上找到的搜索结果没有给我我找到的答案,因为我找不到类似的问题。 这是我到目前为止的代码:需要多个数字并执行不同作业的C++函数

#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; 

}

+0

当你说“中等价值”是指你的中位数还是平均值? – Beta

+6

我确实希望没有人提供完整的解决方案,坦率地说,从长远来看,这根本无助于OP。 – PeterK

+1

对不起,是这个意思。 – Sociopaten

回答

5

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

想想你如何在精神上计算这些东西。例如,如果您想总结我读给您的数字列表,您只需跟踪运行总数,并在添加它时忘记每个数字 - 这样只需要一个变量。如果你想跟踪输入的最大数字,你只需记住迄今为止见过的最大数字,然后比较新数字。

你也许可以解决这些问题。

+0

当我尝试从心理上对sum函数进行绘图时,我得到了这个:int sumCalc(int num){sum_alc(int num){int_alpha_count = 0,count = 0; count ++; count = sum; 归还金额; } – Sociopaten

+1

@Sociopaten最好先在纸上写下一个示例问题,然后写下你的解决方案。例如,如果我向你读出一个数字列表:5,然后是3,然后是6,然后是2,那么当你听到数字时,你会在纸上记录什么,以便计算最后的平均值? – TooTone

1

如果你需要得到的平均值和最高和第二高的数字,你并不需要一个数组(你不需要存储的数字)

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

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

相关问题