Итак, у меня есть метод, который берет мой вектор и делает для l oop, где он проверяет, существует ли в файле год и месяц, введенные пользователем, данные из этих совпадений и некоторые расчеты выполнены. Теперь мне нужно выполнить другое условие, когда пользователь вводит только год, и мне нужно получить все записи за все месяцы, в которых есть информация в этом году.
Что у меня есть:
int month;
int year;
int SIZE = windlog.size();
float averagetemp[SIZE];
float sd[SIZE];
float sum = 0;
float sigma = 0;
float avgtemp1;
float sd1;
int nrofel = 0;
int check[SIZE];
cout << "Please enter a year: " << endl;
cin >> year;
for(int i = 0; i < windlog.size(); i++){
if(windlog[i].d.GetYear() == year){
for(int x = 1; x < 13; x++){
if(windlog[i].d.GetMonth() == x){
nrofel++;
sum += windlog[i].temp.GetTemperature();
averagetemp[i] = (sum/nrofel);
sigma += (windlog[i].temp.GetTemperature() - averagetemp[i])*(windlog[i].temp.GetTemperature() - averagetemp[i]);
sd[i] = (sigma)/(nrofel - 1);
check[i] = x;
//cout << nrofel << '\n';
//cout << checkMonth(x) << ":" << averagetemp << "degrees C, stdev: " << sd << '\n';
}
}
}
}
int z = 0;
for(int y = 1; y < 13; y++){
if(check[z] != y){
cout << checkMonth(y) << ": No Data" << '\n';
z++;
}
else{
cout << checkMonth(y) << ": " << averagetemp[z] << " degrees C, stdev: " << sd[z] << '\n';
}
}
}
Пока мой вывод показывает «Нет данных» для каждого месяца, кроме марта 2014 года, однако есть данные с марта по декабрь. Я уверен, что мой лог c неверен, может кто-нибудь указать мне правильное направление?
Если нужен входной файл, дайте мне знать. Просто чтобы уточнить, первый столбец состоит из даты и времени, и я разделил значения в программе.