Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- struct stud{
- int indeks;
- char ime[20];
- int ocena[34];
- int brojispita;
- };
- void ucitajStudente(struct stud *s, int *brojstud, char *dat){
- int indeks,ocena;
- char ime[20];
- int j, k;
- FILE *p = fopen(dat, "r");
- while(fscanf(p, "%d %s %d", &indeks, ime, &ocena)!=EOF){
- if(ocena>=6 && ocena <=10){
- for(k = 0;k<*brojstud;k++)
- if(s[k].indeks == indeks){
- j = s[k].brojispita;
- s[k].ocena[j] = ocena;
- s[k].brojispita++;
- break;
- }
- if(k==*brojstud){
- s[k].indeks = indeks;
- s[k].ocena[0] = ocena;
- s[k].brojispita=1;
- j=0;
- while(ime[j]){
- s[k].ime[j]=ime[j];
- j++;
- }
- s[k].ime[j] = '\0';
- (*brojstud)++;
- }
- }
- }
- fclose(p);
- }
- float prosek(struct stud s){
- int i, suma=0;
- for(i=0;i<s.brojispita;i++){
- suma+=s.ocena[i];
- }
- return (float)suma/(float)s.brojispita;
- }
- void nadjiMinMax(struct stud *s, int brojstud, int *min, int *max){
- int i;
- *min = 0;
- *max = 0;
- for(i=1;i<brojstud;i++){
- if(prosek(s[i])>prosek(s[*max]))
- *max = i;
- if(prosek(s[i])<prosek(s[*min]))
- *min = i;
- }
- }
- void upisi(struct stud s, char *naziv){
- int i;
- FILE *p = fopen(naziv, "w");
- for(i = 0; i<s.brojispita;i++){
- fprintf(p,"%d %s %d\n",s.indeks, s.ime, s.ocena[i]);
- }
- fprintf(p,"Prosecna ocena: %f\n",prosek(s));
- fclose(p);
- }
- int main(int brArg, char *nizarg[]){
- struct stud s[30];
- int brojstud = 0, min, max;
- ucitajStudente(s, &brojstud,nizarg[1]);
- nadjiMinMax(s, brojstud, &min, &max);
- upisi(s[min], "najnizi.txt");
- upisi(s[max], "najvisi.txt");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement