Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <io.h>
- int main()
- {
- FILE *f;
- int mas[] = {8, 4, 1, 10, 6, 17, 23};
- int i1, i2, i, k = sizeof(int);
- fpos_t n1, n2;
- if(!(f = fopen("file", "w+b")))
- {
- printf("error");
- return 0;
- }
- fwrite(mas, sizeof(mas), 1, f);
- fseek(f, k, 0);
- while(1)
- {
- fgetpos(f, &n1);
- fread(&i1, sizeof(int), 1, f);
- if(feof(f)) rewind(f);
- n2 = n1 - k;
- fsetpos(f, &n2);
- while(n2 >= 0)
- {
- fgetpos(f, &n2);
- fread(&i2, sizeof(int), 1, f);
- if(i2 > i1)
- {
- n2 += k;
- fsetpos(f, &n2);
- fwrite(&i2, sizeof(int), 1, f);
- n2 -= k;
- }
- else break;
- n2 -= k;
- if(n2 >= 0) fsetpos(f, &n2);
- }
- n2 += k;
- fsetpos(f, &n2);
- fwrite(&i1, sizeof(int), 1, f);
- n1 += k;
- if(n1 >= filelength(fileno(f))) break;
- fsetpos(f, &n1);
- }
- rewind(f);
- while(1)
- {
- fread(&i, sizeof(int), 1, f);
- if(feof(f)) break;
- printf("%3d", i);
- }
- fclose(f);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement