Počeo sam da pišem kod za sledeći zadatak,ali ono najbitnije ne znam da uradim tj. da sortiram elemente neke datoteke.Pokušao sam nešto sa strukturama ali neide.Može li neko da mi pomogne.
Ovo je moj pokušaj:
Ovo je moj pokušaj:
Code:
/*Pretpostavimo da su u nesortiranoj datoteci upisani rezultati nekog ispita, u svakom redu
su podaci o uspijehu jednog studenta u obliku: PREZIME IME BODOVI
Napisati program koji sortira takvu datoteku(prvi argument komandne linije) u opadajućem
redosljedu po broju bodova i rezultat sortiranja upisuje u drugu datoteku(drugi argument
komandne linije).U svaki red treba upisati: RB. PREZIME IME BODOVI
gdje RB predstavlja redni broj.Svi studenti sa istim brojem bodova dijele isto mjesto.
Npr. 1. Markovic Marko 100
1. Jankovic Janko 100
3. Nikolic Janko 90
Rezultat treba ispisati i na standardnom izlazu. */
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *ul,*izl;
struct osoba {
char prezime[15];
char ime[15];
int rb;
int bodovi[3];
}student;
char imedat[100];
int i=1,j;
student.rb=0;
if( ( ul=fopen("D:/zad 5.txt","r") )!= NULL)
{
printf("Ime datoteke u koju upisujemo je:\t");
scanf("%s",imedat);
if( ( izl=fopen(imedat,"w") )!=NULL)
{
while(!feof(ul))
{
fscanf(ul,"%s %s %s",student.prezime,student.ime,student.bodovi);
student.rb=student.rb+1;
fprintf(izl,"%d. %s %s %s\n",student.rb,student.prezime,student.ime,student.bodovi);
}
fclose(izl);
}
else
printf("greska pri otvaranju dat. za upisivanje\n");
fclose(ul);
}
else
printf("greska pri otvaranju dat. za citanje\n",imedat);
system("pause");
}
/*Pretpostavimo da su u nesortiranoj datoteci upisani rezultati nekog ispita, u svakom redu
su podaci o uspijehu jednog studenta u obliku: PREZIME IME BODOVI
Napisati program koji sortira takvu datoteku(prvi argument komandne linije) u opadajućem
redosljedu po broju bodova i rezultat sortiranja upisuje u drugu datoteku(drugi argument
komandne linije).U svaki red treba upisati: RB. PREZIME IME BODOVI
gdje RB predstavlja redni broj.Svi studenti sa istim brojem bodova dijele isto mjesto.
Npr. 1. Markovic Marko 100
1. Jankovic Janko 100
3. Nikolic Janko 90
Rezultat treba ispisati i na standardnom izlazu. */
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *ul,*izl;
struct osoba {
char prezime[15];
char ime[15];
int rb;
int bodovi[3];
}student;
char imedat[100];
int i=1,j;
student.rb=0;
if( ( ul=fopen("D:/zad 5.txt","r") )!= NULL)
{
printf("Ime datoteke u koju upisujemo je:\t");
scanf("%s",imedat);
if( ( izl=fopen(imedat,"w") )!=NULL)
{
while(!feof(ul))
{
fscanf(ul,"%s %s %s",student.prezime,student.ime,student.bodovi);
student.rb=student.rb+1;
fprintf(izl,"%d. %s %s %s\n",student.rb,student.prezime,student.ime,student.bodovi);
}
fclose(izl);
}
else
printf("greska pri otvaranju dat. za upisivanje\n");
fclose(ul);
}
else
printf("greska pri otvaranju dat. za citanje\n",imedat);
system("pause");
}