Загрузка данных


#include <iostream>
#include <fstream>

using namespace std;

int main() {
    ifstream plik("temp.txt");
    ofstream wynik("zad_4.txt");

    int lata[228];
    double temp[228][12];

    // 1. Wczytywanie danych
    for (int i = 0; i < 228; i++) {
        plik >> lata[i];
        for (int j = 0; j < 12; j++) {
            plik >> temp[i][j];
        }
    }

    // 2. Podpunkty a) i b) - Najniższa i najwyższa średnia roczna
    double min_srednia = 999.0;
    double max_srednia = -999.0;
    int rok_min = 0, rok_max = 0;

    for (int i = 0; i < 228; i++) {
        double suma = 0;
        for (int j = 0; j < 12; j++) {
            suma += temp[i][j];
        }
        double srednia = suma / 12.0;

        if (srednia < min_srednia) {
            min_srednia = srednia;
            rok_min = lata[i];
        }
        if (srednia > max_srednia) {
            max_srednia = srednia;
            rok_max = lata[i];
        }
    }

    wynik << "a) " << min_srednia << " " << rok_min << endl;
    wynik << "b) " << max_srednia << " " << rok_max << endl;

    // 3. Podpunkt c) - Min i max dla każdego miesiąca
    wynik << "c)" << endl;
    for (int m = 0; m < 12; m++) {
        double min_m = 999.0;
        double max_m = -999.0;

        for (int i = 0; i < 228; i++) {
            if (temp[i][m] < min_m) min_m = temp[i][m];
            if (temp[i][m] > max_m) max_m = temp[i][m];
        }
        wynik << "Miesiac " << m + 1 << ": Min = " << min_m << ", Max = " << max_m << endl;
    }

    // 4. Podpunkt d) - Ciąg malejący dla sierpnia (indeks 7)
    int max_dlugosc = 1;
    int rok_pocz = lata[0], rok_kon = lata[0];

    int biezaca_dlugosc = 1;
    int biezacy_pocz = lata[0];

    for (int i = 1; i < 228; i++) {
        if (temp[i][7] < temp[i-1][7]) {
            biezaca_dlugosc++;
        } else {
            if (biezaca_dlugosc > max_dlugosc) {
                max_dlugosc = biezaca_dlugosc;
                rok_pocz = biezacy_pocz;
                rok_kon = lata[i-1];
            }
            biezaca_dlugosc = 1;
            biezacy_pocz = lata[i];
        }
    }
    // Sprawdzenie na koniec pliku
    if (biezaca_dlugosc > max_dlugosc) {
        max_dlugosc = biezaca_dlugosc;
        rok_pocz = biezacy_pocz;
        rok_kon = lata[227];
    }

    wynik << "d) Rok poczatkowy: " << rok_pocz 
          << ", Rok koncowy: " << rok_kon 
          << ", Dlugosc: " << max_dlugosc << endl;

    plik.close();
    wynik.close();

    return 0;
}