Advertisement
Guest User

Untitled

a guest
Aug 27th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.77 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. //Napisac funcje ktora dla jakiejs tablicy rekordow o N wierszach i N kolumnach zawierajacych pola(imie,nazwisko,wiek)
  5. //zwraca poprzez parametry funkcji sredni oraz najnizszy wiek osob lezacych na obu przekatnych tablicy i zarazem o imieniu i
  6. //nazwisku zaczynajacym sie jakims znakiem.
  7. const int N=3;
  8. struct Dane{
  9.     string imie;
  10.     string nazwisko;
  11.     int wiek;
  12. };
  13.  
  14. Dane **utworz ()
  15. {
  16.     Dane **tab=new Dane *[N];
  17.     for(int i=0;i<N;i++)
  18.     {
  19.         tab[i]=new Dane[N];
  20.     }
  21.     return tab;
  22. }
  23. void usun(Dane **tab)
  24. {
  25.     for(int i=0;i<N;i++)
  26.     {
  27.         delete[]tab[i];
  28.     }
  29.     delete[]tab;
  30. }
  31. void funkcja(Dane **tab, double &srednia, int &min,char znak)
  32. {
  33.     for(int i=0;i<N;i++)
  34.     {
  35.         for(int j=0;j<N;j++)
  36.         {
  37.             cin>>tab[i][j].imie;
  38.             cin>>tab[i][j].nazwisko;
  39.             cin>>tab[i][j].wiek;
  40.         }
  41.     }
  42.     for(int i=0;i<N;i++)
  43.     {
  44.         for(int j=0;j<N;j++)
  45.         {
  46.             cout<<tab[i][j].imie<<' ';
  47.             cout<<tab[i][j].nazwisko<<' ';
  48.             cout<<tab[i][j].wiek<<' ';
  49.         }
  50.         cout<<endl;
  51.     }
  52.     double suma=0;
  53.     srednia=0;
  54.     int licznik=0;
  55.     int licznikpom=0;
  56.     min=200; // zakladam ze nikt nie bedzie mial 200 lat...
  57.  
  58.     for(int i=0;i<N;i++)
  59.     {
  60.         if(tab[i][i].imie[0]=='a' && tab[i][i].nazwisko[0]=='a')
  61.         {
  62.             if(tab[i][i].wiek<min)
  63.             {
  64.                 min=tab[i][i].wiek;
  65.             }
  66.             suma=suma+tab[i][i].wiek;
  67.             licznik++;
  68.  
  69.         }
  70.         if(tab[N-1-i][i].imie[0]=='a' && tab[N-1-i][i].nazwisko[0]=='a')
  71.         {
  72.             if(tab[N-1-i][i].wiek<min)
  73.             {
  74.                 min=tab[N-1-i][i].wiek;
  75.             }
  76.             suma=suma+tab[N-1-i][i].wiek;
  77.             licznik++;
  78.         }
  79.  
  80.  
  81.     }
  82.  
  83.     /*int pom=licznik/2;         //<--to jest zabezpieczenie jesli N jest nieparzyste, ale nie dziala, bo licznik sie wtedy zle liczy
  84.     if(pom%2==0)                 // dlatego ze wtedy nie patrzy na warunek ze imie i nazwisko powinno sie zaczynac na 'a'
  85.     {                            //ale nie wiem jak mam to zaimplementowac wyzej
  86.         licznikpom=licznik*2;
  87.         srednia=suma/licznikpom;
  88.     }
  89.     else
  90.     {
  91.         suma=suma-tab[pom][pom].wiek;
  92.         licznikpom=2*licznik-1;
  93.         srednia=suma/licznikpom;
  94.     }
  95.     */
  96.    
  97.  
  98.     srednia=suma/licznik;
  99.  
  100.     cout<<"suma:"<<suma<<endl;
  101.     cout<<"licznik:"<<licznik<<endl;
  102.     cout<<"sredni wiek:"<<srednia<<endl;
  103.     cout<<"najnizszy wiek:"<<min<<endl;
  104.     cout<<endl;
  105.  
  106. }
  107.  
  108. int main()
  109. {
  110.     Dane **tab=utworz();
  111.     double srednia;
  112.     int min;
  113.     char znak='a';
  114.     funkcja(tab,srednia,min,znak);
  115.     usun(tab);
  116.  
  117.  
  118.  
  119.     return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement