Вложено для l oop logi c, проверка года, затем значения для месяцев - C ++ - PullRequest
0 голосов
/ 04 мая 2020

Итак, у меня есть метод, который берет мой вектор и делает для 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 неверен, может кто-нибудь указать мне правильное направление?

Если нужен входной файл, дайте мне знать. Просто чтобы уточнить, первый столбец состоит из даты и времени, и я разделил значения в программе.

...