Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- struct osoba {
- char ime[50];
- char adresa[100];
- int godine;
- int godine_iskustva ;
- };
- void ucitajOsobu(struct osoba *os)
- {
- printf("Ime: ");
- gets(os->ime);
- printf("Adresa: ");
- gets(os->adresa);
- printf("Starost: ");
- scanf("%d", &os->godine);
- printf("Godine iskustva: ");
- scanf("%d", &os->godine_iskustva);
- }
- void ucitajNizOsoba(struct osoba osobe[], int n){
- for(int i =0 ; i < n ; i++){
- printf("\n-------------\n");
- printf("Unesite podatke od \t%i. osobe --> \n",i+1);
- getchar();
- ucitajOsobu(&osobe[i]);
- }
- }
- void printOsoba(struct osoba os)
- {
- printf("\n-------------\n");
- printf("Ime: %s\n", os.ime);
- printf("Adresa: %s\n", os.adresa);
- printf("Starost: %d\n\n", os.godine);
- printf("Godine iskustva: %d\n\n", os.godine_iskustva);
- }
- void printNizOsoba(struct osoba osobe[], int n){
- for(int i =0 ; i < n ; i++){
- printOsoba(osobe[i]);
- }
- }
- float prosecnaStarostOsoba(struct osoba osobe[], int n){
- int resSum;
- for(int i =0 ; i < n ; i++){
- resSum += osobe[i].godine ;
- }
- float res = resSum / n ;
- return res;
- }
- float prosecniRadniStaz(struct osoba osobe[], int n){
- int resSum;
- for(int i =0 ; i < n ; i++){
- resSum += osobe[i].godine_iskustva ;
- }
- float res = resSum / n ;
- return res;
- }
- int brElemenata = 0 ;
- struct osoba* izdvojOsobe(struct osoba osobe[], int n){
- for(int i =0 ; i < n ; i++){
- if((osobe[i].godine < 50) && (osobe[i].godine_iskustva >20 ) )
- brElemenata++;
- }
- struct osoba *osobeToReturn = malloc(brElemenata * sizeof(struct osoba));
- int helper = 0 ;
- for(int i =0 ; i < n ; i++){
- if((osobe[i].godine < 50) && (osobe[i].godine_iskustva >20 ) ){
- osobeToReturn[helper] = osobe[i];
- helper++;
- }
- }
- return osobeToReturn ;
- }
- int main(){
- printf("Ucitajte broj clanova niza (n) ---> ");
- int n ;
- scanf("%i",&n);
- struct osoba *osobe = malloc( n * sizeof(struct osoba));
- ucitajNizOsoba(osobe , n );
- printf("\n-------------\n");
- printNizOsoba(osobe, n);
- printf("\n-------------\n");
- printf("Prosecna starost osoba iz niza jeste --> ");
- float res = prosecnaStarostOsoba(osobe , n );
- printf("\t%.2f\t",res);
- printf("\n-------------\n");
- printf("Prosecni radni staz osoba iz niza jeste --> ");
- float res2 = prosecniRadniStaz(osobe , n );
- printf("\t%.2f\t",res2);
- struct osoba *osobe2 = izdvojOsobe(osobe, n );
- printf("\n-------------\n\n");
- printf("Izdvojene osobe iz niza --> ");
- printNizOsoba(osobe2,brElemenata);
- return 0 ;
- }
Advertisement
Add Comment
Please, Sign In to add comment