Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

STRUKTURE PODATAKA

1. Program koji za za zadato tekue vreme odreuje naredno vreme.


#include<stdio.h>
void main()
{
struct vreme{
int sat;
int minut;
int sekund;
}
tekuce_vreme,naredno_vreme;
printf("Unesite tekuce vreme?[cc:mm:ss]");
scanf("%d:%d:%d",&tekuce_vreme.sat,
&tekuce_vreme.minut,
&tekuce_vreme.sekund);
naredno_vreme=tekuce_vreme;
if(++naredno_vreme.sekund==60)
{
naredno_vreme.sekund=0;
if(++naredno_vreme.minut==60)
{
naredno_vreme.minut=0;
if(++naredno_vreme.sat==24)
naredno_vreme.sat=0;
}
}
printf("Naredno vreme je %02d:%02d:%02d\n", naredno_vreme.sat,
naredno_vreme.minut, naredno_vreme.sekund);
}
2. Napisati program za formiranje strukture student sa karakteristikama Ime, Prezime, broj
indeksa, srednja ocena. Za uneti broj studenata n, sortirati studente prema srednjoj oceni i
ispisati na ekranu
#include<stdio.h>
typedef struct student{
char Ime[20],Prezime[20];
int broj_indeksa;
float srednja_ocena;
};
void razmeni(struct student *a, struct student *b){
struct student pom;
pom=*a;
*a=*b;
*b=pom;
}
void sort(struct student STU[], int n){
int i, j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(STU[i].srednja_ocena<STU[j].srednja_ocena)
razmeni(&STU[i],&STU[j]);}

void main()
{
int n;
int i;
struct student STU[100];
printf("Unesite broj studenata: \n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Unesi ime: \n");
scanf("%s",STU[i].Ime);
printf("Unesi prezime: \n");
scanf("%s",STU[i].Prezime);
printf("Unesi broj indeksa: \n");
scanf("%d",&STU[i].broj_indeksa);
printf("Unesi srednju ocenu: \n");
scanf("%f",&STU[i].srednja_ocena);
}
sort(STU,n);
for(i=0;i<n;i++)
{
printf("student broj %d\n",i+1);
printf("Ime:%s\n",STU[i].Ime);
printf("Prezime:%s\n",STU[i].Prezime);
printf("Broj indeksa: %d\n",STU[i].broj_indeksa);
printf("Srednja ocena: %5.2f\n\n\n",STU[i].srednja_ocena);
}}
3.

Napisati program koji pravi rang listu studenata koji su polagali prijemni ispit. Sa
standardnog ulaza se unose sledeci podaci: ime studenta, cetiri ocene iz prethodnog
skolovanja i broj bodova na prijemnom ispitu.

#include<stdio.h>
#define DIM 10
typedef struct student{
char ime[20];
int brBodova;/*Ukupna suma bodova svakog studenta: ocene + prijemni*/
};
void razmeni(struct student *a, struct student *b){
struct student tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
void sort(struct student niz[], int n){
int i, j;
for(i=0; i<n-1; i++)
for(j=i; j<n; j++)
if(niz[i].brBodova<niz[j].brBodova)
razmeni(&niz[i], &niz[j]);}

void main(){
struct student nizStudenata[DIM];
int n, i, j;
static int ocene[5];
int bodovi;
static int sumaOcena[DIM];/*Suma ocena iz prethodnog skolovanja*/
printf("Uneti broj studenta koji je polagao prijemni: ");
scanf("%d", &n);
for(i=0; i<n; i++){
printf("Uneti ime studenta: ");
scanf("%s", &nizStudenata[i].ime);
printf("Uneti cetiri ocene iz prethodnog skolovanja: ");
for(j=0; j<4; j++){
scanf("%d", &ocene[j]);
sumaOcena[i]+=ocene[j];
//printf("Suma ocena je: %d\n", sumaOcena[i]);
}
printf("Uneti broj bodova sa prijemnog: ");
scanf("%d", &bodovi);
nizStudenata[i].brBodova=sumaOcena[i]+bodovi;
printf("Ukupna suma bodova svakog studenta: ocene + prijemni je: %d\n",
nizStudenata[i].brBodova);
}
sort(nizStudenata, n);
printf("Rang lista studenata je:\n\n");
for(i=0; i<n; i++)
printf("%s\t%d\n", nizStudenata[i].ime, nizStudenata[i].brBodova);}
4. Definisati strukturu GRAD sa podacima clanovima: ime, broj_stanovnika,
prosecan_dohodak_radnika. Napisati program kojim se unose podaci o gradovima u Srbiji i
stampati na standardnom izlazu ime grada sa najvecim brojem stanovnika. Izracunati
ukupan dohodak svih unetih gradova.
#include<stdio.h>
#define DIM 10
typedef struct grad{
char ime[20];
int brStan;
float dohodak;
};
void main(){
struct grad nizGradova[DIM];
int i, n;
float ukupanDohodak=0.0;
int najveci;
int indeksNajvecegGrada;
printf("Uneti koliko gradova ima: ");
scanf("%d", &n);
for(i=0; i<n; i++){
printf("Uneti ime grada: ");

scanf("%s", &nizGradova[i].ime);
printf("Uneti broj stnovnika: ");
scanf("%d", &nizGradova[i].brStan);
printf("Uneti dohodak: ");
scanf("%f", &nizGradova[i].dohodak);
ukupanDohodak+=nizGradova[i].dohodak;
}
printf("Ukupan dohodak svih gradova je: %6.2f\n", ukupanDohodak);
najveci=nizGradova[0].brStan;
indeksNajvecegGrada=0;
for(i=0; i<n; i++){
if(nizGradova[i].brStan>najveci){
najveci=nizGradova[i].brStan;
indeksNajvecegGrada=i;
}
}
printf("Grad sa najvise stanovnika je %s\n", nizGradova[indeksNajvecegGrada].ime);
}

5. Napisati program za formiranje strukture podataka telefonski_imenik sa poljima: prezime,


broj i adresa. Napisati program za sortiranje imenika prema prezimenu pretplatnika.
#include<stdio.h>
#define DIM 10
typedef struct telefonski_imenik{
char prezime[20];
char broj[10];
char adresa[20];
};
void razmeni(struct telefonski_imenik *a, struct telefonski_imenik *b){
struct telefonski_imenik tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
void sort(struct telefonski_imenik niz[], int n){
int i, j;
for(i=0; i<n-1; i++)
for(j=i; j<n; j++)
if(niz[i].prezime<niz[j].prezime)
razmeni(&niz[i], &niz[j]);
}
void main(){
struct telefonski_imenik nizImenik[DIM];
int n, i;
printf("Uneti broj telefonskih pretplatnika: ");
scanf("%d", &n);
for(i=0; i<n; i++){
printf("Uneti prezime pretplatnika: ");

scanf("%s", &nizImenik[i].prezime);
printf("Uneti broj telefona pretplatnika: ");
scanf("%s", &nizImenik[i].broj);
printf("Uneti adresu pretplatnika: ");
scanf("%s", &nizImenik[i].adresa);;
}
sort(nizImenik, n);
printf("\nTelefonski imenik sortiran po prezimenu pretplatnika je:\n\n");
for(i=0; i<n; i++)
printf("%s\t%s\t%s\n", nizImenik[i].prezime, nizImenik[i].broj, nizImenik[i].adresa);
}

You might also like