Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // primer poziva programa ./zadatak5 ulaz.txt
- #include <stdio.h>
- #include <stdlib.h>
- struct student_t {
- char indeks[12];
- char ime[31];
- unsigned ocena;
- };
- typedef struct student_t STUDENT;
- FILE *otvori_datoteku(char *naziv_datoteke, char *rezim) {
- FILE *pdatoteka = fopen(naziv_datoteke, rezim);
- if (pdatoteka == NULL) {
- printf("Doslo je do greske prilikom otvaranja datoteke!\n");
- exit(2);
- }
- return pdatoteka;
- }
- int ucitaj_studente(FILE *pulazna_datoteka, STUDENT *studenti) {
- int i = 0;
- while (fscanf(pulazna_datoteka, "%s %s %u", studenti[i].indeks, studenti[i].ime, &studenti[i].ocena) != EOF) {
- i++;
- }
- return i;
- }
- void ispisi_studenta(FILE *pizlazna_datoteka, STUDENT student) {
- fprintf(pizlazna_datoteka, "%s %s %u\n", student.indeks, student.ime, student.ocena);
- }
- void min_max_ocena(STUDENT *studenti, int broj_studenata) {
- unsigned min_ocena = studenti[0].ocena;
- unsigned max_ocena = studenti[0].ocena;
- double srednja_ocena = 0;
- int i = 0;
- for (; i < broj_studenata; i++) {
- srednja_ocena += studenti[i].ocena;
- if (studenti[i].ocena < min_ocena) {
- min_ocena = studenti[i].ocena;
- } else if (studenti[i].ocena > max_ocena) {
- max_ocena = studenti[i].ocena;
- }
- }
- printf("Srednja ocena je: %lf\n", srednja_ocena / (double) broj_studenata);
- FILE *pnajmanja = otvori_datoteku("najmanja.txt", "w");
- FILE *pnajveca = otvori_datoteku("najveca.txt", "w");
- for (i = 0; i < broj_studenata; i++) {
- if (studenti[i].ocena == min_ocena) {
- ispisi_studenta(pnajmanja, studenti[i]);
- }
- if (studenti[i].ocena == max_ocena) {
- ispisi_studenta(pnajveca, studenti[i]);
- }
- }
- fclose(pnajmanja);
- fclose(pnajveca);
- }
- int main(int argc, char *argv[]) {
- if (argc != 2) {
- printf("Neispravan poziv programa. Primer poziva: ./zadatak5 ulaz.txt\n");
- exit(1);
- }
- STUDENT studenti[100];
- FILE *pulazna_datoteka = otvori_datoteku(argv[1], "r");
- int broj_studenata = ucitaj_studente(pulazna_datoteka, studenti);
- fclose(pulazna_datoteka);
- min_max_ocena(studenti, broj_studenata);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement