REŠENI PRIMERI SA NIZOVIMA STRUKTURA 1 OPISATI STRUKTURU PROIZVOD








Rešeni primeri sa nizovima struktura


1. Opisati strukturu proizvod koji sadrži sledeća polja: naziv, proizvođač, cena, količina.

Napisati program u kome se :

-vrši unos podataka o n proizvoda u jednoj prodavnici auto-delova (n<100),

-računa ukupan broj proizvoda,

-računa broj proizvoda koje proizvodi FIAT,

-štampaju nazivi proizvoda čija je količina 0,

-štampa spisak proizvoda sortiranih po ceni.


#include <stdio.h>

#include <string.h>

struct proizvod

{

char naziv[30];

char proiz[20];

float cena;

int kolicina;

};

main()

{

struct proizvod x[100], p;

int bp, bf, max, n, i, j,k, jedinstven;

char a[20] [50];

printf("Unesi broj proizvoda u prodavnici:");

scanf("%d",&n);

printf("Unesi podatke o proizvodima:\n");

for (i=0;i<n;i++)

{

printf("naziv:"); scanf("%s",&x[i].naziv);

printf("proizvođač:"); scanf("%s",&x[i].proiz);

printf("cena:"); scanf("%f",&x[i].cena);

printf("kolicina:"); scanf("%d",&x[i].kolicina);

}

bp=0;

for (i=0;i<n;i++)

bp+=x[i].kolicina;

printf("ukupan broj proizvoda u prodavnici:%d",bp);

bf=0;

for (i=0;i<n;i++)

if (strcmp(x[i].proiz,"FIAT")==0)

bf++;

printf("ukupan broj proizvoda FIAT-a je :%d",bf);

printf("Proizvodi koji nedostaju u prodavnici :");

for (i=0;i<n;i++)

if (x[i].kolicina==0)

printf("%s %s", x[i].naziv, x[i].proiz);

for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if ( x[i].cena>x[j].cena)
{
p=x[i]; x[i]=x[j]; x[j]=p;
}
printf("Proizvodi sortirani po ceni : \n");
for(i=0;i<n;i++)
printf("%s %s %f", x[i].naziv, x[i].proiz, x[i].cena);


}






2. Opisati strukturu apartman koji sadrži sledeća polja: naziv, mesto, broj kreveta, cena.

Napisati program u kome se:

- vrši unos podataka za n apartmana turističke agencije,

- računa prosečna cena apartmana u toj agenciji,

- broj apartmana u mestu Paralia,

- štampa naziv apartmana za 2 osobe sa najmanjom cenom,

- štampa spisak apartmana sortiranih po ceni.


#include <stdio.h>

#include <string.h>

struct apartman

{

char naziv[20];

char mesto[20];

int brojk;

float cena;

};

main()

{

struct apartman x[100], p;

int b, min, n, i, j, k, rb, jedinstven;

float s, prosek;

char a[20] [50];

printf("Unesi broj ponuda u agenciji:");

scanf("%d",&n);

printf("Unesi podatke o ponudama:\n");

for (i=0;i<n;i++)

{

printf("naziv:"); scanf("%s",&x[i].naziv);

printf("mesto:"); scanf("%s",&x[i].mesto);

printf("broj kreveta:"); scanf("%d",&x[i].brojk);

printf("cena:"); scanf("%f",&x[i].cena);

}

s=0;

for (i=0;i<n;i++)

s+=x[i].cena;

prosek=s/n;

printf("Prosečna cena apartmana u agenciji je:%f",prosek);

b=0;

for (i=0;i<n;i++)

if (strcmp(x[i].mesto,"Paralia")==0)

b++;

printf("Broj apartmana u Paraliji je :%d", b);

min= x[0].cena;

rb=0;

for (i=1;i<n;i++)

if (x[i].cena<min)

{

min=x[i].cena; rb=i;

}

printf("Najjeftiniji dvokrevetni apartman je %s u mestu %s :", x[rb].naziv, x[rb].mesto );



for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if ( x[i].cena>x[j].cena)
{
p=x[i]; x[i]=x[j]; x[j]=p;
}
printf("Apartmanii sortirani po ceni : \n");
for(i=0;i<n;i++)
printf("%s %s %f", x[i].naziv, x[i].mesto, x[i].cena);


}




3. Uneti niz od n struktura tipa radnik koja sadrži ime, pol, broj godina radnog staža, stepen stručne spreme i platu. Izračunati:

1)broj radnika koji imaju više od 5 godina radnog staža

2)prosečnu platu radnika

3)imena radnika sa najvišim stepenom stručne spreme

4)broj žena sa više od 20 godina radnog staža

5)sortirati dati niz struktura u abecednom poretku


Rešenje:

#include <stdio.h>

#include <string.h>

struct radnik

{

char ime[30];

char pol;

int radnistaz;

int sss;

float plata;

};

main()

{

struct radnik x[50],pom;

int n,i,b1,b2,max;

float s, prosek;

printf(“unesi broj radnika”); scanf(“%d”,&n);

printf(“unesi podatke o radnicima\n”);

for (i=1;i<=n;i++)

{

printf(“%d.radnik:”,i); scanf(“%s”,&x[i].ime);

printf(“pol:”); scanf(“%c”,&x[i].pol);

printf(“godine radnog staza:”); scanf(“%d”,&x[i].radnistaz);

printf(“stepen strucne spreme:”); scanf(“%d”,&x[i].sss);

printf(“plata:”); scanf(“%f”,&x[i].plata);

}

b1=0;

for (i=1;i<=n;i++)

if ( x[i].radnistaz > 5) b1++;

printf(“broj radnika sa vise od 5 godina radnog staza:%d”,b1);

s=0;

for (i=1;i<=n;i++)

s+= x[i].plata;

prosek=s/n;

printf(“prosecna plata radnika:%f”,prosek);

max= x[1].sss;

for (i=2;i<=n;i++)

if ( x[i].sss > max)

max= x[i].sss;

printf(“Imena radnika sa najvišim stepenom stručne spreme:”);

for (i=1;i<=n;i++)

if ( x[i].sss == max) printf(“%s”, x[i].ime);

b2=0;

for (i=1;i<=n;i++)

if (x[i].pol==’Z” && x[i].radnistaz>20)

b2++;

printf(“Broj zena sa vise od 20 godina radnog staza:%d”,b2);

for (i=1;i<n;i++)

for (j=i+1;j<=n;j++)

if ( strcmp (x[i].ime, x[j].ime)>0)

{
pom=x[i]; x[i]=x[j]; x[j]=pom;
}

printf( “Radnici sortirani po abecedi:\n”);

for (i=1;i<=n;i++)

printf(“%d. %s ”,i, x[i].ime);

}




4. Uneti niz od n struktura tipa učenik koja sadrži sledeća polja: ime,pol, prosek, razred(1-4). Napisati program koji računa:

  1. broj učenika 4.razreda;

  2. broj muških učenika;

  3. ispisati imena učenika koji imaju odličan uspeh;

  4. ispisati ime učenika koji ima najbolji prosek;

  5. ispisati imena učenika sortiranih po razredima u školi i to do 1. do 4.razreda.


#include <stdio.h>
#include <string.h>
struct ucenik {
char ime[30];
char pol;
int razred;
float prosek;

};
main() {
struct ucenik x[50],p;
int n,i,j,b4=0,bm=0;
float max;
printf("Unesi broj ucenika"); 
scanf("%d",&n);
printf("Unesi podatke o ucenicima\n");
for (i=0;i<n;i++)
{
printf("%d.ucenik:",i+1); 
scanf("%s",&x[i].ime); printf("\n"); 
printf("pol:"); 
scanf("%s",&x[i].pol); printf("\n");
printf("razred:"); 
scanf("%d",&x[i].razred); printf("\n");
printf("prosek:"); 
scanf("%f",&x[i].prosek); printf("\n");
}
for (i=0;i<n;i++)
if ( x[i].razred==4) 
b4++;

printf("Broj ucenika sa odlicnim uspehom:%d\n",b4); 
for (i=0;i<n;i++)
if ( x[i].pol=='m' || x[i].pol=='M') 
bm++; 
printf("Broj muskih ucenika:%d\n",bm);

printf("Spisak odličnih ucenika:\n");
for (i=0;i<n;i++)
if ( x[i].prosek>=4.5) 
printf("%s\n",x[i].ime); 
max=x[0].prosek;

for (i=1;i<n;i++)
if ( x[i].prosek>max) 
max=x[i].prosek;
printf("Ucenici sa najboljim prosekom:");
for (i=0;i<n;i++)
if ( x[i].prosek==max) 
printf("%s\n",x[i].ime);
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++)
if (x[i].razred>x[j].razred)
{
p=x[i]; x[i]=x[j]; x[j]=p;
}
printf("Ucenici sortirani po razredu:\n");
for (i=0;i<n;i++)
printf("%d. %s ",i+1, x[i].ime);
}




5. Opisati strukturu klijent koja sadrzi sledeca polja : ime, mesto, telefonski broj i poslednji racun. Napisati program koji realizuje sledece :
1) unos podataka za n klijenata;
2) prosecan racun za poslednji mesec;
3) broj klijenata iz Kraljeva;
4) ime i broj klijenata sa najvecim racunom;
5) sortiranje klijenata po telefonskom broju.

#include<stdio.h>
#include<string.h>
struct klijent
{
char ime[30];
char mesto[30];
int broj;
float pr;
};
main()
{
struct klijent x[100], pom;
int i, j, n, b=0, max, rb;
float sr, s;
printf("Uneti broj klijenata : \n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Ime : \n");
scanf("%s",&x[i].ime);
printf("Mesto : \n");
scanf("%s",&x[i].mesto);
printf("Telefonski broj : \n");
scanf("%d",&x[i].broj);
printf("Poslednji racun : \n");
scanf("%f",&x[i].pr);
}
for(i=0;i<n;i++)
s+=x[i].pr;
sr=s/n;
printf("Prosecni racun za prosli mesec : %f\n ",sr);
for(i=0;i<n;i++)
if (x[i].mesto=="Kraljevo")
b++;
printf("Broj klijenata iz Kraljeva : %d\n ",b);
max= x[0].pr; rb=0;

for(i=1;i<n;i++)
if (x[i].pr>max)

{
max=x[i].pr; rb=i;

}
printf("Klijent sa najvecim racunom : \n", x[rb].ime);

for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if ( x[i].broj>x[j].broj)
{
pom=x[i]; x[i]=x[j]; x[j]=pom;
}
printf("Klijenti sortirani po telefonskom broju : \n");
for(i=0;i<n;i++)
printf("%s",x[i].ime);
} 






Tags: nizovima struktura, struktura, strukturu, rešeni, opisati, primeri, nizovima, proizvod