Advertisement
sdee3

Vezba4, zad2

Nov 12th, 2016
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.82 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #define MAX 80
  5. #define BROJ 100
  6. struct student
  7. {
  8.     char ime_studenta[MAX + 1];
  9.     char ime_smera[MAX + 1];
  10.     int br_indeksa;
  11.     int god_upisa;
  12. };
  13. void upis(struct student niz[],int n)
  14. {
  15.     int i, temp;
  16.     for (i = 0; i < n; i++)
  17.     {
  18.         temp = getchar();
  19.         printf("\nIme studenta: ");
  20.         gets(niz[i].ime_studenta);
  21.         printf("\nIme smera na kojem je student: ");
  22.         gets(niz[i].ime_smera);
  23.         printf("\nBroj indeksa studenata: ");
  24.         scanf("%d", &niz[i].br_indeksa);
  25.         printf("\nGodina upisa studenta: ");
  26.         scanf("%d", &niz[i].god_upisa);
  27.     }
  28. }
  29. int provera(struct student niz[],int n)
  30. {
  31.     struct student *ptr1, *ptr2;
  32.     int god_upisa1;
  33.    
  34.     printf("\nUnesite godinu upisa : ");
  35.     scanf("%d", &god_upisa1);
  36.     for (ptr1 = ptr2 = niz; ptr1 < niz + n;ptr1++)
  37.     {
  38.        
  39.         if ((*ptr1).god_upisa <= god_upisa1)
  40.             *ptr2++ = *ptr1;
  41.     }
  42.     return(ptr2 - niz);
  43. }
  44. void stampa(struct student niz[], int n)
  45. {
  46.     int i;
  47.     puts("\nSpisak studenata koji su upisali fakultet do trazene godine:\n\n");
  48.     for (i = 0; i < n; i++)
  49.     {
  50.         printf("%s\t%s-%d/%d\n", niz[i].ime_studenta, niz[i].ime_smera, niz[i].br_indeksa, niz[i].god_upisa);
  51.     }
  52.     printf("\n\n");
  53. }
  54. main()
  55. {
  56.     struct student *podaci;
  57.     int n, n1;
  58.     do
  59.     {
  60.         printf("\nUnesite broj studenata: ");
  61.         scanf("%d", &n);
  62.     } while (n<1 || n>BROJ);
  63.     if ((podaci = (struct student *) malloc(n*sizeof(struct student))) == NULL)
  64.         printf("\nGreska\n");
  65.     upis(podaci, n);
  66.     n1 = provera(podaci, n);
  67.     if((podaci= (struct student *) realloc(podaci,n1*sizeof(struct student)))==NULL)
  68.         printf("\nGreska\n");
  69.     stampa(podaci, n1);
  70.     free(podaci);
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement