Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- //Napisac funcje ktora dla jakiejs tablicy rekordow o N wierszach i N kolumnach zawierajacych pola(imie,nazwisko,wiek)
- //zwraca poprzez parametry funkcji sredni oraz najnizszy wiek osob lezacych na obu przekatnych tablicy i zarazem o imieniu i
- //nazwisku zaczynajacym sie jakims znakiem.
- const int N=3;
- struct Dane{
- string imie;
- string nazwisko;
- int wiek;
- };
- Dane **utworz ()
- {
- Dane **tab=new Dane *[N];
- for(int i=0;i<N;i++)
- {
- tab[i]=new Dane[N];
- }
- return tab;
- }
- void usun(Dane **tab)
- {
- for(int i=0;i<N;i++)
- {
- delete[]tab[i];
- }
- delete[]tab;
- }
- void funkcja(Dane **tab, double &srednia, int &min,char znak)
- {
- for(int i=0;i<N;i++)
- {
- for(int j=0;j<N;j++)
- {
- cin>>tab[i][j].imie;
- cin>>tab[i][j].nazwisko;
- cin>>tab[i][j].wiek;
- }
- }
- for(int i=0;i<N;i++)
- {
- for(int j=0;j<N;j++)
- {
- cout<<tab[i][j].imie<<' ';
- cout<<tab[i][j].nazwisko<<' ';
- cout<<tab[i][j].wiek<<' ';
- }
- cout<<endl;
- }
- double suma=0;
- srednia=0;
- int licznik=0;
- int licznikpom=0;
- min=200; // zakladam ze nikt nie bedzie mial 200 lat...
- for(int i=0;i<N;i++)
- {
- if(tab[i][i].imie[0]=='a' && tab[i][i].nazwisko[0]=='a')
- {
- if(tab[i][i].wiek<min)
- {
- min=tab[i][i].wiek;
- }
- suma=suma+tab[i][i].wiek;
- licznik++;
- }
- if(tab[N-1-i][i].imie[0]=='a' && tab[N-1-i][i].nazwisko[0]=='a')
- {
- if(tab[N-1-i][i].wiek<min)
- {
- min=tab[N-1-i][i].wiek;
- }
- suma=suma+tab[N-1-i][i].wiek;
- licznik++;
- }
- }
- /*int pom=licznik/2; //<--to jest zabezpieczenie jesli N jest nieparzyste, ale nie dziala, bo licznik sie wtedy zle liczy
- if(pom%2==0) // dlatego ze wtedy nie patrzy na warunek ze imie i nazwisko powinno sie zaczynac na 'a'
- { //ale nie wiem jak mam to zaimplementowac wyzej
- licznikpom=licznik*2;
- srednia=suma/licznikpom;
- }
- else
- {
- suma=suma-tab[pom][pom].wiek;
- licznikpom=2*licznik-1;
- srednia=suma/licznikpom;
- }
- */
- srednia=suma/licznik;
- cout<<"suma:"<<suma<<endl;
- cout<<"licznik:"<<licznik<<endl;
- cout<<"sredni wiek:"<<srednia<<endl;
- cout<<"najnizszy wiek:"<<min<<endl;
- cout<<endl;
- }
- int main()
- {
- Dane **tab=utworz();
- double srednia;
- int min;
- char znak='a';
- funkcja(tab,srednia,min,znak);
- usun(tab);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement