Facebook
From Ddk, 1 Month ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 133
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. int main() {
  8.     srand(time(NULL));
  9.  
  10.     // Losowa wielkość tablicy
  11.     int size = rand() % 11 + 10; // Zakres 10-20
  12.     int tab[size][size];
  13.  
  14.     // Wypełnianie tablicy
  15.     for (int i = 0; i < size; ++i) {
  16.         for (int j = 0; j < size; ++j) {
  17.             if (i == j) {
  18.                 // Przekątna
  19.                 if (rand() % 2 == 0) {
  20.                     tab[i][j] = 1;
  21.                 } else {
  22.                     tab[i][j] = -1;
  23.                 }
  24.             } else {
  25.                 // Pozostałe komórki
  26.                 tab[i][j] = rand() % 201 - 100; // Zakres -100-100
  27.             }
  28.         }
  29.     }
  30.  
  31.     // Wyświetlanie tablicy (do celów sprawdzania)
  32.     cout << "Tablica:" << endl;
  33.     for (int i = 0; i < size; ++i) {
  34.         for (int j = 0; j < size; ++j) {
  35.             cout << tab[i][j] << "\t";
  36.         }
  37.         cout << endl;
  38.     }
  39.  
  40.     // Szukanie dwóch największych liczb
  41.     int max1 = -101, max2 = -101;
  42.     for (int i = 0; i < size; ++i) {
  43.         for (int j = 0; j < size; ++j) {
  44.             if (tab[i][j] > max1) {
  45.                 max2 = max1;
  46.                 max1 = tab[i][j];
  47.             } else if (tab[i][j] > max2 && tab[i][j] != max1) {
  48.                 max2 = tab[i][j];
  49.             }
  50.         }
  51.     }
  52.  
  53.     // Wyświetlanie dwóch największych liczb
  54.     cout << "Dwie największe liczby: " << max1 << ", " << max2 << endl;
  55.  
  56.     // Obliczanie sumy liczb w komórkach o parzystych indeksach wierszy i nieparzystych kolumn
  57.     int sum1 = 0, sum2 = 0;
  58.     for (int i = 0; i < size; ++i) {
  59.         for (int j = 0; j < size; ++j) {
  60.             if (i % 2 == 0 && j % 2 != 0) {
  61.                 sum1 += tab[i][j];
  62.             } else if (i % 2 != 0 && j % 2 == 0) {
  63.                 sum2 += tab[i][j];
  64.             }
  65.         }
  66.     }
  67.  
  68.     // Wyświetlanie stosunku sumy
  69.     cout << "Stosunek sumy liczb: " << (double)sum1 / (double)sum2 << endl;
  70.  
  71.     // Obliczanie sumy wartości z wierszy nieparzystych i sumy wartości z kolumn parzystych
  72.     int oddRowSum = 0, evenColSum = 0;
  73.     for (int i = 0; i < size; ++i) {
  74.         if (i % 2 != 0) {
  75.             for (int j = 0; j < size; ++j) {
  76.                 oddRowSum += tab[i][j];
  77.             }
  78.         } else {
  79.             for (int j = 0; j < size; j += 2) {
  80.                 evenColSum += tab[i][j];
  81.             }
  82.         }
  83.     }
  84.  
  85.     // Wyświetlanie różnicy sum
  86.     cout << "Różnica sum: " << (oddRowSum != evenColSum ? "różne" : "takie same") << endl;
  87.  
  88.     // Liczenie liczby komórek, których wartość jest mniejsza od iloczynu indeksów wiersza i kolumny
  89.     int count = 0;
  90.     for (int i = 0; i < size; ++i) {
  91.         for (int j = 0; j < size; ++j) {
  92.             if (tab[i][j] < i * j) {
  93.                 count++;
  94.             }
  95.         }
  96.     }
  97.  
  98.     // Wyświetlanie liczby komórek
  99.     cout << "Liczba komórek: " << count << endl;
  100.  
  101.     return 0;
  102. }