Advertisement
PaulPaulAga

Untitled

May 8th, 2020
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.17 KB | None | 0 0
  1.  
  2. #include <stdio.h>
  3.  
  4. /*
  5. Постановка задачи
  6.  
  7. Есть текстовый файл
  8. 1
  9. 2
  10. 3
  11. 4
  12. 6
  13. 10
  14.  
  15. Нужно удалить возрастающие последовательности
  16.  */
  17.  
  18.  
  19. #define MAX_ARRAY_SIZE 100
  20.  
  21. typedef int array[MAX_ARRAY_SIZE];
  22.  
  23. void delete_increasing(const char *filename) // const char * - строка
  24. {
  25.     FILE *file = fopen(filename, "r");
  26.     int buf;
  27.     int i = 0;
  28.     array arr;
  29.  
  30.     if (!file)
  31.         return;
  32.  
  33.     while (!feof(file))  // пока не конец файла; feof(FILE *) - 1, если не конец файла и 0, если конец
  34.     {
  35.         if (fscanf(file, "%d", &buf) == 1)
  36.         {
  37.             arr[i] = buf;
  38.             i++;
  39.         }
  40.     }
  41.     fclose(file);
  42.  
  43.     file = fopen(filename, "w");
  44.     // i - размер массива считанных из файла чисел
  45.     if (i == 1 || (arr[0] >= arr[1]))
  46.         fprintf(file, "%d\n", arr[0]);
  47.  
  48.     for (int j = 1; j < i; ++j)
  49.         if (arr[j - 1] >= arr[j])
  50.             fprintf(file, "%d\n", arr[j]);
  51.  
  52.     fclose(file);
  53. }
  54.  
  55. int main()
  56. {
  57.     delete_increasing("numbers.txt");
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement