Определить количество чисел после удаления которых числовая последовательность станет монотонной. Работа с файлом - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день! Не так давно, к сожалению, изучаю язык, могу не многое но нужно реализовать программу а как не знаю. Помогите кто чем может. Как реализовать следующую программу: В строках текстового файла записаны числа, числа разделены пробелами и символами перевода строки. Необходимо определенное количество чисел после удаления которых числовая последовательность станет монотонной. Из работы с файлами могу только:
#include <stdio.h>
 
#include <conio.h>
 
#include <string.h>
 
main()
 
{  char ch, sl[50];
 
FILE *pf ;                      // Указатель на файлы
 
pf=fopen("new1.txt","r");   // Открытие файла pf для чтения
 
rewind(pf);                          // Возврат указателя на начало файла pf
 
fgets(sl,50,pf);                     // Чтение из файла pf строки в переменную sl
 
printf("%s\n",sl);                 // Вывод строки sl на дисплей
 
fclose(pf);                          // Закрытие файлов
 
getch();
}
А как работать с данными файла я не знаю. Я так понимаю их можно поместить в массив и далее ими как то манипулировать. В общем помогите кто чем может!
Народ помогите хоть словом, я вообще в тупике...(((

Решение задачи: «Определить количество чисел после удаления которых числовая последовательность станет монотонной. Работа с файлом»

textual
Листинг программы
#include <stdio.h>
#define N 20
int A[N] = { 2, 1, 5, 7, 3,  4, 10, 14, 1, 15,
             44, 35, 11, 18, 5,  3, 2, 7, 8, 40 };
char x[N];
main()
{ int i, j, ax, count;
 memset(x, 0, N);
 for(i=0; i<N; i++) {
   if (x[i]) continue;
   count = 1;
   printf(" %d", A[i]);
   ax = A[i];
   for(j=i+1; j<N; j++) {
     if (A[j] <= ax) continue;
     printf(" %d", A[j]);
     x[j] = 1;
     ax = A[j];
     count++;
   }
   printf(" =%d\n", count);
 }
}

Объяснение кода листинга программы

В этом коде определен массив A, содержащий числа, и массив x, который изначально содержит только нули. Затем в цикле перебираются элементы массива A. Если текущий элемент уже был помечен как 0 в массиве x, то его пропускают. В противном случае, считают количество чисел, меньших или равных текущему, и выводят текущее число и его количество на экран. После этого помечают все числа, меньшие или равные текущему, в массиве x единицами. Код продолжается до тех пор, пока все элементы массива A не будут обработаны.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы