Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement