我想知道你有不同的方式来做下面的代码吗?
我正在学习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;
}
}
答案 0 :(得分:0)
只要您不需要除了平均值之外的任何其他数字,您就可以消除数字和临时数组,而不需要任何发电机内存通过保持运行总和和计数。
伪码:
var userInput
var sum
var count
var average
userInput = readInput ()
while ( userInput != Q)
{
sum += userInput
count++
userInput = readInput ()
average = sum/count
}