second test

#include <iostream>
#include <ctime>
#include <cstdlib>
 
const int ROZMIAR = 6;
 
void wypelni(double tab[][ROZMIAR])
{
    for (int i = 0; i < ROZMIAR; ++i)
    {
        for (int j = 0; j < ROZMIAR; ++j)
        {
            tab[i][j] = 10.0 * rand() / RAND_MAX;
        }
    }
}
 
void wypisz(double tab[][ROZMIAR])
{
    for (int i = 0; i < ROZMIAR; ++i)
    {
        for (int j = 0; j < ROZMIAR; ++j)
        {
            std::cout << tab[i][j] << '\t';
        }
        std::cout << std::endl;
    }
}
 
void znajdz_i_zmien_przekatne(double tab[][ROZMIAR]) {
    double najwieksza_1 = tab[0][0], najwieksza_2 = tab[1][1];
    auto w1{ 0 }, w2{ 1 }, k1{ 0 }, k2{ 1 };
    if (najwieksza_2 > najwieksza_1) {
        std::swap(najwieksza_1, najwieksza_2);
        std::swap(w1, w2);
        std::swap(k1, k2);
    }
 
    for (auto i{ 2 }; i < ROZMIAR; ++i) {
        if (tab[i][i] > najwieksza_1) {
            najwieksza_2 = najwieksza_1;
            w2 = w1;
            k2 = k1;
            najwieksza_1 = tab[i][i];
            w1 = i;
            k1 = i;
        }
        else if (tab[i][i] > najwieksza_2) {
            najwieksza_2 = tab[i][i];
            k2 = i;
            w2 = i;
        }
    }
    const auto K{ ROZMIAR - 1 };
    for (auto i{ 0 }; i < ROZMIAR; ++i) {
        if (tab[i][K - i] > najwieksza_1) {
            najwieksza_2 = najwieksza_1;
            w2 = w1;
            k2 = k1;
            najwieksza_1 = tab[i][K - i];
            w1 = i;
            k1 = K - i;
        }
        else if (tab[i][K - i] > najwieksza_2) {
            najwieksza_2 = tab[i][K - i];
            k2 = K - i;
            w2 = i;
        }
    }
 
    /*for (int i = 0; i < ROZMIAR; ++i) {
        if (tab[i][i] > najwieksza_1) {
            najwieksza_2 = najwieksza_1;
            w_max = w_min; k_max = k_min;
            najwieksza_1 = tab[i][i];
            w_min = i; k_min = i;
        }
        else if (tab[i][i] > najwieksza_2) {
            najwieksza_2 = tab[i][i];
            w_max = i; k_max = i;
        }
        if (tab[i][ROZMIAR - 1 - i] > najwieksza_1) {
            najwieksza_2 = najwieksza_1;
            w_max = w_min; k_max = k_min;
            najwieksza_1 = tab[i][ROZMIAR - 1 - i];
            w_min = i; k_min = ROZMIAR - 1 - i;
        }
        else if (tab[i][ROZMIAR - 1 - i] > najwieksza_2) {
            najwieksza_2 = tab[i][ROZMIAR - 1 - i];
            w_max = i; k_max = ROZMIAR - 1 - i;
        }
    }*/
 
 
    std::cout << "Najwieksza wartosc na przekatnych: " << najwieksza_1 << " na polu [" << w1 << "][" << k1 << "]" << std::endl;
    std::cout << "Druga najwieksza wartosc na przekatnych: " << najwieksza_2 << " na polu [" << w2 << "][" << k2 << "]" << std::endl;
 
    tab[w2][k2] = 0;
    tab[w1][k1] = 0;
    std::cout << "\n liczby zamienione na 0:\n";
    wypisz(tab);
}
 
 
 
 
void wartoscMinMax(double tab[][ROZMIAR])
{
    auto najmniejsza{ tab[0][0] }, najwieksza{ tab[0][0] };
    auto w_min{ 0 }, w_max{ 0 }, k_min{ 0 }, k_max{ 0 };
    // sprawdzenie pozostałych elementów zerowego wiersza:
    for (int i{ 1 }; i < ROZMIAR; ++i) {
        if (tab[0][i] < najmniejsza) {
            najmniejsza = tab[0][i];
            k_min = i;
        }
        else if (tab[0][i] > najwieksza) {
            najwieksza = tab[0][i];
            k_max = i;
        }
    }
    // sprawdzenie pozostałych elementów ostatniej kolumny:
    const auto k{ ROZMIAR - 1 };
    for (int i{ 1 }; i < ROZMIAR; ++i) {
        if (tab[i][k] < najmniejsza) {
            najmniejsza = tab[i][k];
            k_min = k;
            w_min = i;
        }
        else if (tab[i][k] > najwieksza) {
            najwieksza = tab[i][k];
            k_max = k;
            w_max = i;
        }
    }
    // sprawdzenie pozostałych elementów ostatniego wiersza:
    for (int i{ 0 }; i < k; ++i) {
        if (tab[k][i] < najmniejsza) {
            najmniejsza = tab[k][i];
            k_min = i;
            w_min = k;
        }
        else if (tab[k][i] > najwieksza) {
            najwieksza = tab[k][i];
            k_max = i;
            w_max = k;
        }
    }
    // sprawdzenie pozostałych elementów zerowej kolumny:
    for (int i{ 1 }; i < k; ++i) {
        if (tab[i][0] < najmniejsza) {
            najmniejsza = tab[i][0];
            k_min = 0;
            w_min = i;
        }
        else if (tab[i][0] > najwieksza) {
            najwieksza = tab[i][0];
            k_max = 0;
            w_max = i;
        }
    }
    std::cout << "Najwieksza wartosc na obwodzie znajduje sie na polu [" << w_max << "][" << k_max << "] i wynosi " << najwieksza << std::endl;
    std::cout << "Najmniejsza wartosc na obwodzie znajduje sie na polu [" << w_min << "][" << k_min << "] i wynosi " << najmniejsza << std::endl;
    double suma = najmniejsza + najwieksza;
    tab[w_min][k_min] = suma;
    tab[w_max][k_max] = suma;
    std::cout << "\nsuma tych liczb:\n";
    //wypisz(tab);
}
 
int main()
{
    double tab2w[ROZMIAR][ROZMIAR];
    srand(time(nullptr));
    wypelni(tab2w);
    wypisz(tab2w);
    znajdz_i_zmien_przekatne(tab2w);
    wartoscMinMax(tab2w);
    wypisz(tab2w);
}