MeehoweCK

Untitled

Mar 26th, 2021
772
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.92 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. short M, N;
  8.  
  9. void wypelnij(double** tablica)
  10. {
  11.     for(short i = 0; i < N; ++i)
  12.         for(short j = 0; j < M; ++j)
  13.             tablica[i][j] = 10.0 * (rand() - 1) / (RAND_MAX - 1);
  14. }
  15.  
  16. void wypisz(double** tablica)
  17. {
  18.     for(short i = 0; i < N; ++i)
  19.     {
  20.         for(short j = 0; j < M; ++j)
  21.             cout << tablica[i][j] << '\t';
  22.         cout << endl;
  23.     }
  24. }
  25.  
  26. short ktora_kolumna(double** tablica)
  27. {
  28.     short k = 0;
  29.     double wartosc, max = 0;
  30.     for(short i = 0; i < N; ++i)
  31.         max += tablica[0][i];
  32.  
  33.     for(short i = 1; i < M; ++i)
  34.     {
  35.         wartosc = 0;
  36.         for(short j = 0; j < N; ++j)
  37.             wartosc += tablica[j][i];
  38.         if(wartosc > max)
  39.         {
  40.             k = i;
  41.             max = wartosc;
  42.         }
  43.     }
  44.     cout << "\nNajwieksza sume wartosci ma kolumna o numerze " << k << endl;
  45.     return k;
  46. }
  47.  
  48. void wypelnij_kolumne(double* &kolumna, double** tablica, short k)
  49. {
  50.     for(short i = 0; i < N; ++i)
  51.         kolumna[i] = tablica[i][k];
  52.  
  53.     for(short i = 0; i < N - 1; ++i)
  54.         for(short j = 0; j < N - i - 1; ++j)
  55.             if(kolumna[j] > kolumna[j + 1])
  56.                 swap(kolumna[j], kolumna[j + 1]);
  57. }
  58.  
  59. void wypisz_kolumne(double* kolumna)
  60. {
  61.     for(short i = 0; i < N; ++i)
  62.         cout << kolumna[i] << '\t';
  63.     cout << endl;
  64. }
  65.  
  66. int main()
  67. {
  68.     srand(time(nullptr));
  69.     N = 3 + rand() % 8;
  70.     M = 3 + rand() % 8;
  71.     double** tablica = new double*[N];
  72.     for(short i = 0; i < N; ++i)
  73.         tablica[i] = new double[M];
  74.  
  75.     wypelnij(tablica);
  76.     wypisz(tablica);
  77.     short k = ktora_kolumna(tablica);
  78.  
  79.     double* kolumna = new double[N];
  80.     wypelnij_kolumne(kolumna, tablica, k);
  81.     wypisz_kolumne(kolumna);
  82.  
  83.     delete[] kolumna;
  84.     for(short i = 0; i < N; ++i)
  85.         delete[] tablica[i];
  86.     delete[] tablica;
  87.     return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment