Если буквы в строке упорядочены по алфавиту, то вывести 0; иначе вывести номер символа, нарушающего порядок - C (СИ)

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

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

Дана строка, содержащая цифры и строчные латинские буквы. Если буквы в строке упорядочены по алфавиту, то вывести 0; в противном случае вывести номер первого символа строки, нарушающего алфавитный порядок. Помогите, пожалуйста, составить программу без использования cin и cout. Буду очень благодарен и признателен. Вот я тут написал небольшую часть:
Листинг программы
  1. void main()
  2. {
  3. char s[100];
  4. int k, i;
  5. printf_s("Введите строку: ");
  6. s[1]='a';
  7. s[2]='b';
  8. s[3]='c';
  9. s[4]='d';
  10. s[5]-'e';
  11. s[6]='f';
  12. s[7]='g';
  13. s[8]='h';
  14. s[9]='i';
  15. s[10]='j';
  16. s[11]='k';
  17. s[12]='l';
  18. s[13]='m';
  19. s[14]='n';
  20. s[15]='o';
  21. s[16]='p';
  22. s[17]='q';
  23. s[18]='r';
  24. s[19]='s';
  25. s[20]='t';
  26. s[21]='u';
  27. s[22]='v';
  28. s[23]='w';
  29. s[24]='x';
  30. s[25]='y';
  31. s[26]='z';
  32. k==0;
  33. }

Решение задачи: «Если буквы в строке упорядочены по алфавиту, то вывести 0; иначе вывести номер символа, нарушающего порядок»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. const int N = 40;
  4.  
  5. int main()
  6. {
  7.     int m, i;
  8.     char j, a[40] = "a267bcd45e7fg89i1b5jkl5m8n5o7p3xy56z";
  9.     for(i = 0; i < N; ++i){
  10.         if(a[i] >= 'a' && a[i] <= 'z')
  11.             j = a[i];
  12.             m = i; break;
  13.     }
  14.     for(i = m; i < N; ++i){
  15.         if(a[i] >= 'a' && a[i] <= 'z'){
  16.             if(a[i] < j){
  17.                 printf("Element a[%d] break alphabetical order\n", i);break;
  18.             }
  19.             else
  20.                 j = a[i];
  21.         }
  22.         if(i == N - 1)
  23.         printf("0\n");
  24.     }
  25.  
  26.     return 0;
  27. }

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

  1. Включаем необходимые заголовочные файлы для работы с stdin/stdout и для работы с массивами
  2. Объявляем константу N, которая равна 40, это максимальное количество символов в строке
  3. Объявляем переменную m типа int, которая будет использоваться в цикле for
  4. Объявляем переменную i типа int, которая будет использоваться в цикле for
  5. Объявляем переменную j типа char, которая будет использоваться для сравнения символов
  6. Объявляем массив a типа char, который содержит строку a267bcd45e7fg89i1b5jkl5m8n5o7p3xy56z
  7. В цикле for проходим по всем элементам массива a, проверяем, является ли символ буквой от 'a' до 'z'
  8. Если текущий символ является буквой от 'a' до 'z', то сохраняем его в переменную j и запоминаем индекс в переменную m
  9. После цикла for выводим сообщение об ошибке, если была найдена буква, нарушающая порядок, и выводим ноль, если все символы упорядочены
  10. Возвращаем 0, чтобы указать, что программа успешно завершилась

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


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

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

9   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы