Advertisement
avukas

tut 5, 3.

Mar 27th, 2015
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5.  
  6. int main()
  7. {
  8.  
  9.     int niz[100];
  10.     int n;
  11.     std::cout<<"Unesi dimenziju niza:\n";
  12.     std::cin>>n;
  13.     std::cout<<"\nUnesi clanove niza:\n";
  14.     for (int i(0); i<n; i++)
  15.         std::cin>>niz[i];
  16.  
  17.     //najveci element niza
  18.     std::cout<<"Maksimalni element niza je: \n" <<
  19.              *std::max_element(niz, niz+n) <<std::endl;
  20.     //koliko puta s eu nizu pojavljuje najmanji element
  21.     std::cout<<"Minimalni element niza je : \n"<<
  22.              *std::min_element(niz, niz+n)<<std::endl;
  23.     std::cout<<"Minimalnih elemenata ima: "<<std::count(niz, niz + n, *std::min_element(niz, niz+n))
  24.              <<std::endl;
  25.  
  26.     //koliko ima brojeva koji su stepeni dvojke
  27.  
  28.     int broj=std::count_if(niz, niz+n, [](int x)
  29.     {
  30.  
  31.         if (x==1) return false;
  32.         while(x!=1)
  33.         {
  34.             if(x%2 != 0)
  35.                 return false;
  36.             x/=2;
  37.         }
  38.         return true;
  39.     });
  40.     std::cout<<"\n Broj elemenata koji su stepeni dvice je:\n"
  41.              <<broj<<std::endl;
  42.  
  43.     //element sa najmanjom sumom cifara
  44.  
  45.     int element = *std::min_element(niz, niz+n, [](int y, int z)
  46.     {
  47.         auto suma1(0), suma2(0);
  48.         while(y!=0)
  49.         {
  50.             suma1+=y%10;
  51.             y/=10;
  52.         }
  53.         while(z!=0)
  54.         {
  55.             suma2+=z%10;
  56.             z/=10;
  57.         }
  58.         return suma1<suma2;
  59.  
  60.     });
  61.  
  62.  
  63.     std::cout<<"Element koji ima najmanju sumu cifara je "<<element<<std::endl;
  64.  
  65. //izbaci dvocifrene
  66.  
  67.  
  68.     int niz2[100];
  69.     int kraj = *std::remove_copy_if(niz, niz+n, niz2, [](int x)
  70.     {
  71.  
  72.         if (x < 100 && x>9)
  73.             return true;
  74.  
  75.         return false;
  76.  
  77.     });
  78.     std::cout<<"\nNovi niz bez dvocifrenih cifara je:";
  79.  
  80.     for (int *p=niz2; *p!=kraj; p++)
  81.     {
  82.         std::cout<<*p<<" ";
  83.     }
  84.  
  85.  
  86.  
  87.  
  88.     return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement