Проверка равенства символов - C (СИ)

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

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

Пожалуйста, помогите решить задачу!!! Даны символы с[1],с[2],...с[N ]. N за ранее известно. выяснить, верно ли, что существуют такие натуральные i и j, что 1<i<j<n и что c[i ]совпадает с c[i+1], а c[j] c c[j+1]. Пожалуйста, помогите!!!
ну и конечно найти i и j
ПОЖАЛУЙСТА!!!!!!!!!!!Завтра зачет...а осталось решить только эту задачу

Решение задачи: «Проверка равенства символов»

textual
Листинг программы
int main(int argc, char* argv[])
{
  char c[100];
 
 
  int i=0,j=0,im=-1,jm=-1;
  printf("vvedite simvoli: ");
  scanf("%100s",c);
 
  for(i=0;i<strlen(c)-1;i++)
  {
      for(j=i;j<strlen(c)-1;j++)
        if((c[j]==c[j+1])&&(j>jm))
        jm=j;
 
      if((c[i]==c[i+1])&&(i>im)&&(i<jm))
      im=i;
  }
  printf("i=%d\n",(im<0)?0:im+1);
  printf("j=%d\n",(jm<0)?0:jm+1);
  getch();
        return 0;
}

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

В этом коде:

  1. Объявлена строка c размером 100 символов.
  2. Далее, с помощью функции scanf, в эту строку считывается строка ввода пользователя.
  3. Затем, с помощью двух вложенных циклов, происходит сравнение всех пар соседних символов строки c.
  4. Если символы равны и текущий цикл не является последним (т.е. j<strlen(c)-1), то в jm записывается значение j, т.е. позиция последнего равного символа в строке.
  5. Если текущий символ равен следующему за ним (c[i]==c[i+1]), и текущий цикл не является первым (т.е. i>im), и текущий символ находится левее jm (т.е. i<jm), то в im записывается значение i, т.е. позиция первого равного символа в строке.
  6. Если в процессе прохода по строке не было найдено пар равных символов, то im и jm принимают значение -1.
  7. В конце программы выводятся значения im и jm, которые соответствуют позиции последнего и первого равного символа в строке.
  8. Программа завершается возвратом 0 из функции main.

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


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

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

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