У меня проблемы с перемещением первого ввода моего массива до конца, чтобы я мог вычислить среднее число входных данных в окне. Я должен использовать массив (не матрицу) для вычисления скользящего среднего веса. Вопрос: если я установлю свое количество весов на 5, введите 5 весов, а затем выполню арифметику, я получу правильное среднее значение за 1-й день, однако, каждый день после этого неверно. Может ли кто-нибудь дать здесь руководство и / или указать мне программу или веб-сайт, которые позволят мне выполнить строку кода для строки, чтобы я мог более эффективно решать эту проблему. Спасибо!
#include <iostream>
#include <cstdlib>
using namespace std;
const int MAX_NUM_WEIGHTS = 50;
// Function prototypes:
void movingAverage(int& numWeights, int weightArray[], int& Window);
int main()
{
int numWeights, Window;
int weightArray[MAX_NUM_WEIGHTS];
movingAverage(numWeights, weightArray, Window);
return 0;
}
void movingAverage(int& numWeights, int weightArray[], int& Window)
{
int i = 0, j = 0, day = 0, sum = 0, temp;
double avg;
cout << "Enter the number of weights: ";
cin >> numWeights;
cout << endl;
cout << "Enter the weights: ";
for(i = 0; i < numWeights; i++) {
cin >> weightArray[i];
}
cout << "Enter the length of the window: ";
cin >> Window;
cout << endl << endl;
while(k < numWeights - 1) {
for(j = 0; j < Window; j++) {
sum += weightArray[j];
}
avg = static_cast<double>(sum) / Window;
day = day + 1;
cout << day << ": " << avg << endl;
int temp = weights[i];
weights[i] = weights[numWeights];
if(k >= (numWeights - 1)) {
break;
}
}
}
Задача ещё не решена.
Других решений пока нет …