数字平均例子

时间:2015-04-14 18:16:53

标签: c++ dynamic-memory-allocation

我想知道你有不同的方式来做下面的代码吗?

我正在学习C ++编程,作为动态内存示例的一部分,我做了以下示例。

这是一个程序,可以根据输入数字给出平均值。

我希望如果能看到一些不同的方法,我可以更好地学习。它不必使用动态内存。

#include <iostream>
#include <string.h>
using namespace std;

int main() {
    int* numbers;
    cout << " q'to exit. s to continue:";
    char selection;
    cin >> selection;
    int numbergiven;
    int* temp;
    int i, j;
    for (i = 1; selection != 'Q'; i++) {
        int counter = 0;
        cout << " Give me a number:";
        cin >> numbergiven;
        numbers = new int[i];
        copy(temp, temp + i - 1, numbers);
        *(numbers + i - 1) = numbergiven;
        int sum = 0;
        for (j = 0; j < i; j++) {
            sum = sum + *(numbers + j);
            counter++;
        }
        int average = sum / (counter);
        cout << "Average so far is:" << average << endl;
        cout << "q'to exit. s to continue:";
        cin >> selection;
        temp = new int[i];
        copy(numbers, numbers + i, temp);
        delete[] numbers;
    }
}

1 个答案:

答案 0 :(得分:0)

只要您不需要除了平均值之外的任何其他数字,您就可以消除数字和临时数组,而不需要任何发电机内存通过保持运行总和和计数。

伪码:

var userInput
var sum
var count
var average

userInput = readInput ()
while ( userInput != Q)
{
    sum += userInput
    count++
    userInput = readInput ()
    average = sum/count
}