Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdlib.h>
- #include<stdio.h>
- int main()
- {
- FILE* f;
- int n, tmp, i, j;
- f = fopen("szamok.bin", "rwb+");
- printf("Rendezés előtt:\n");
- // Megszámoljuk, hány elem van a fájlban.
- n = 0;
- while(fread(&tmp, sizeof(int), 1, f) > 0)
- {
- n++;
- printf("%d ", tmp);
- }
- rewind(f);
- // Minimum kiválasztásos rendezés
- for(i = 0; i < n-1 ;++i)
- {
- int min_value, min_index;
- min_index = i;
- fseek(f, sizeof(int) * i, SEEK_SET);
- fread(&min_value, sizeof(int), 1, f);
- //printf("i kezdetben = %d", min_value);
- for(j = i+1; j < n ;++j)
- {
- int act_value;
- fseek(f, sizeof(int) * j, SEEK_SET);
- fread(&act_value, sizeof(int), 1, f);
- if(act_value < min_value)
- {
- min_value = act_value;
- min_index = j;
- }
- }
- // printf(" min value = %d\n", min_value);
- if(min_index != i)// volt az i. értéknél kisebb a maradék résztömbben
- {
- int i_value;
- fseek(f, sizeof(int) * i, SEEK_SET);
- fread(&i_value, sizeof(int), 1, f);// az i. érték beolvasása
- fseek(f, sizeof(int) * i, SEEK_SET);
- fwrite(&min_value, sizeof(int), 1, f);//Minimum érték beírása az i. pozícióba
- fseek(f, sizeof(int) * min_index, SEEK_SET);
- fwrite(&i_value, sizeof(int), 1, f);// Az i. érték beírása a min_index pozícióba
- }
- }
- rewind(f);
- printf("\nRendezés után:\n");
- for(i = 0; i < n ; ++i)
- {
- int tmp;
- fread(&tmp, sizeof(int), 1, f);
- printf("%d ", tmp);
- }
- printf("\n\n");
- fclose(f);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement