Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdexcept>
  3. #include <new>
  4.  
  5. int **KreirajTrougao(int n){
  6.     if(n <= 0) throw std::domain_error("Broj redova mora biti pozitivan");
  7.     int **niz = nullptr;
  8.     try{
  9.         niz = new int* [n];
  10.         for(int i = 0; i < n; i++) niz[i] = nullptr;
  11.         try{
  12.             niz[0] = new int [n*n];
  13.             for(int i = 1, j = 0; i < n; i++, j++)
  14.                 niz[i] = niz[i-1] + i + j;
  15.             for(int i = 0, z = 1; i < n; i++, z++){
  16.                 for(int j = 0, k = -i - 1; j < i+z; j++, k++){
  17.                     if(!k) k+=2;
  18.                     niz[i][j] = abs(k);
  19.                 }
  20.             }
  21.         }
  22.         catch(...){
  23.             delete[] niz;
  24.             throw;
  25.         }
  26.     }
  27.     catch(...){
  28.         throw;
  29.     }
  30.     return niz;
  31. }
  32.  
  33. int main (){
  34.     std::cout << "Koliko zelite redova: ";
  35.     int n;
  36.     std::cin >> n;
  37.     int **niz(nullptr);
  38.     try{
  39.         niz = KreirajTrougao(n);
  40.         if(!niz) return 0;
  41.         for(int i = 0, z = 1; i < n; i++, z++){
  42.             for(int j = 0; j < i+z; j++)
  43.                 std::cout << niz[i][j] << " ";
  44.             std::cout << std::endl;
  45.         }
  46.         delete[] niz[0];
  47.         delete[] niz;
  48.     }
  49.     catch(std::domain_error x){
  50.         std::cout << "Izuzetak: " << x.what();
  51.     }
  52.     catch(std::bad_alloc){
  53.         std::cout << "Izuzetak: Nedovoljno memorije!";
  54.     }
  55.     return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement