Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- struct Grad {
- char naziv[20];
- int br_stanovnika;
- };
- struct Drzava {
- char naziv[50];
- struct Grad glavni;
- };
- struct Regija {
- char naziv[50];
- struct Grad glavni;
- };
- int filtriraj(struct Drzava *niz1, int vel1,struct Regija *niz2, int vel2)
- {
- for(int i = 0; i < vel1; i++) {
- if(niz1[i].naziv[0] == 'Z') {
- for(int k = i; k < vel1-1; k++) {
- niz1[k] = niz1[k+1];
- }
- vel1--;
- i--;
- }
- if(i<0) continue;
- if(niz1[i].glavni.br_stanovnika < 10000) {
- for(int k = i; k < vel1-1; k++) {
- niz1[k] = niz1[k+1];
- }
- vel1--;
- i--;
- }
- if(i<0) continue;
- for(int j = 0; j < vel2; j++) {
- if(!strcmp(niz1[i].glavni.naziv,niz2[j].glavni.naziv)) {
- for(int k = i; k < vel1-1; k++) {
- niz1[k] = niz1[k+1];
- }
- vel1--;
- i--;
- }
- }
- }
- return vel1;
- }
- int ucitaj_drzave(struct Drzava *niz, int vel){
- FILE* fp = fopen("drzave.dat","rb");
- if(!fp){
- printf("Greska pri otvaranju 'drzave.dat'!");
- exit(1);
- }
- int i = 0;
- while(!ferror(fp) && !feof(fp) && i < vel){
- fread(&niz[i],1,sizeof(struct Drzava),fp);
- i++;
- }
- fclose(fp);
- return i;
- }
- int ucitaj_regije(struct Regija *niz, int vel){
- FILE* fp = fopen("regije.txt","r");
- if(!fp){
- printf("Greska pri otvaranju 'regije.txt'!");
- exit(1);
- }
- int i = 0;
- while(fscanf(fp, "%[^,],%[^,],%d\n",niz[i].naziv,niz[i].glavni.naziv,&niz[i].glavni.br_stanovnika) == 3 && i < vel){
- i++;
- }
- fclose(fp);
- return i;
- }
- struct Grad max_glavni(struct Drzava *niz, int vel){
- int i,j;
- struct Grad max;
- for(i = 0; i < vel; i++){
- max = niz[i].glavni;
- for(j = 0; j < vel; j++){
- if(niz[j].glavni.br_stanovnika > max.br_stanovnika)
- max = niz[j].glavni;
- }
- return max;
- }
- }
- void drzave_regije(struct Drzava *niz1, int vel1, struct Regija *niz2, int vel2){
- struct Grad max = max_glavni(niz1,vel1);
- for(int i = 0; i < vel2; i++){
- if(!strcmp(max.naziv,niz2[i].glavni.naziv))
- printf("%s\n",niz2[i].naziv);
- }
- }
- void zapisi_regije(struct Regija *niz, int vel){
- FILE *fp = fopen("regije.txt","w");
- if(!fp){
- printf("Greska pri otvaranju 'regije.txt'!");
- exit(1);
- }
- int i = 0;
- while(i < vel){
- fprintf(fp,"%s,%s,%d\n",niz[i].naziv,niz[i].glavni.naziv,niz[i].glavni.br_stanovnika);
- i++;
- }
- fclose(fp);
- }
- int main()
- {
- printf("ZSR 13, Zadatak 4");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement