Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #define MAX_DL_IM 11
- #define MAX_DL_NA 17
- #define DUZO 10000
- typedef struct {
- char imie[MAX_DL_IM];
- char nazwisko[MAX_DL_NA];
- int pensja;
- } osoba;
- osoba tab[DUZO];
- int czytanie(char nazwa[]);
- void sortowanie(int ile);
- void pisanie(char wynik[], int ile);
- int main(int arg_num, char* arg[]) {
- if (arg_num == 3) {
- int ile = czytanie(arg[1]);
- if (ile > 0) {
- sortowanie(ile);
- pisanie(arg[2], ile);
- }
- }
- else
- printf("\n Poprawne wywolanie: './porzadkuj dane wynik'\n\n");
- return 0;
- }
- int czytanie(char nazwa[]) {
- FILE* plik = fopen(nazwa,"r");
- if(plik==NULL) return 1;
- int i = 0, p;
- p = fscanf(plik,"%s",tab[i].imie);
- while(p > 0) {
- fscanf(plik,"%s",tab[i].nazwisko);
- fscanf(plik,"%i",&tab[i].pensja);
- i++;
- p = fscanf(plik,"%s",tab[i].imie);
- }
- fclose(plik);
- return i;
- }
- void sortowanie(int ile) {
- int i, j;
- char tmp[MAX_DL_NA+1];
- for(i = 0; i < ile; i++) {
- for(j = 1; j <ile-i; j++) {
- if(strcmp(tab[j-1].nazwisko,tab[j].nazwisko) > 0) {
- strcpy(tmp,tab[j-1].nazwisko);
- strcpy(tab[j-1].nazwisko,tab[j].nazwisko);
- strcpy(tab[j].nazwisko,tmp);
- }
- else if(strcmp(tab[j-1].nazwisko,tab[j].nazwisko) == 0) {
- strcpy(tmp,tab[j-1].imie);
- strcpy(tab[j-1].imie,tab[j].imie);
- strcpy(tab[j].imie,tmp);
- }
- }
- }
- }
- void pisanie(char wynik[], int ile) {
- int i;
- FILE* plik_nowy = fopen(wynik,"w");
- for(i = 0; i < ile; i++) {
- fprintf(plik_nowy, "%s ", tab[i].imie);
- fprintf(plik_nowy, "%s ", tab[i].nazwisko);
- fprintf(plik_nowy, "%i \n", tab[i].pensja);
- }
- fclose(plik_nowy);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement