Advertisement
Guest User

ZSR 13 Z2

a guest
Feb 19th, 2020
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.35 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. struct Grad{
  4.     char naziv[30];
  5.     int br_stanovnika;
  6. };
  7. int ucitaj(struct Grad *gradovi, int vel)
  8. {
  9.     FILE *ulaz;
  10.     char znak;
  11.     char tmpGrad[50];
  12.     char *p=tmpGrad;
  13.     int i=0;
  14.     ulaz=fopen("gradovi.txt","r");
  15.     while(i<vel&&(znak=fgetc(ulaz))!=EOF) {
  16.         if(znak<'0' || znak>'9') {
  17.             *p=znak;
  18.             p++;
  19.         } else {
  20.             p--;
  21.             *p='\0';
  22.             strcpy(gradovi[i].naziv,tmpGrad);
  23.             fseek(ulaz,-1,SEEK_CUR);
  24.             fscanf(ulaz,"%d\n",&gradovi[i].br_stanovnika);
  25.             i++;
  26.             p=tmpGrad;
  27.         }
  28.     }
  29.     fclose(ulaz);
  30.     return i;
  31. }
  32. void zapisi(struct Grad *gradovi, int vel, int n){
  33.     FILE *ulaz;
  34.     int i;
  35.     ulaz=fopen("izlaz.txt","w");
  36.     for(i=0;i<vel;i++){
  37.         if(gradovi[i].br_stanovnika>n)
  38.         fprintf(ulaz,"%s\n",gradovi[i].naziv);
  39.     }
  40.     fclose(ulaz);
  41. }
  42. int provjera(struct Grad gradovi,char z){
  43.     char *p=gradovi.naziv;
  44.     if(*p==z)
  45.     return 1;
  46.     return 0;
  47.    
  48. }
  49. void ispis(struct Grad *gradovi,int vel, char z){
  50.     int i;
  51.     for(i=0;i<vel;i++){
  52.         if(provjera(gradovi[i],z)==1)
  53.         printf("%s\n",gradovi[i].naziv);
  54.     }
  55. }
  56. int main()
  57. {
  58.     struct Grad gradovi[100];
  59.     int br_gradova = ucitaj(gradovi, 100);
  60.     printf("Broj gradova: %d\n", br_gradova);
  61.     if (br_gradova > 0) {
  62.         printf("Prvi grad: %s (%d)\n", gradovi[0].naziv, gradovi[0].br_stanovnika);
  63.     }
  64.      zapisi(gradovi, br_gradova, 100000);
  65.     ispis(gradovi, br_gradova, 'B');
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement