Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <io.h>
  3.  
  4. int main()
  5. {
  6. FILE *f;
  7. int mas[] = {8, 4, 1, 10, 6, 17, 23};
  8. int i1, i2, i, k = sizeof(int);
  9. fpos_t n1, n2;
  10. if(!(f = fopen("file", "w+b")))
  11. {
  12. printf("error");
  13. return 0;
  14. }
  15. fwrite(mas, sizeof(mas), 1, f);
  16. fseek(f, k, 0);
  17. while(1)
  18. {
  19. fgetpos(f, &n1);
  20. fread(&i1, sizeof(int), 1, f);
  21. if(feof(f)) rewind(f);
  22. n2 = n1 - k;
  23. fsetpos(f, &n2);
  24. while(n2 >= 0)
  25. {
  26. fgetpos(f, &n2);
  27. fread(&i2, sizeof(int), 1, f);
  28. if(i2 > i1)
  29. {
  30. n2 += k;
  31. fsetpos(f, &n2);
  32. fwrite(&i2, sizeof(int), 1, f);
  33. n2 -= k;
  34. }
  35. else break;
  36. n2 -= k;
  37. if(n2 >= 0) fsetpos(f, &n2);
  38. }
  39. n2 += k;
  40. fsetpos(f, &n2);
  41. fwrite(&i1, sizeof(int), 1, f);
  42. n1 += k;
  43. if(n1 >= filelength(fileno(f))) break;
  44. fsetpos(f, &n1);
  45. }
  46.  
  47. rewind(f);
  48. while(1)
  49. {
  50. fread(&i, sizeof(int), 1, f);
  51. if(feof(f)) break;
  52. printf("%3d", i);
  53. }
  54. fclose(f);
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement