Если буквы в строке упорядочены по алфавиту, то вывести 0; иначе вывести номер символа, нарушающего порядок - C (СИ)
Формулировка задачи:
Дана строка, содержащая цифры и строчные латинские буквы. Если
буквы в строке упорядочены по алфавиту, то вывести 0; в противном
случае вывести номер первого символа строки, нарушающего алфавитный
порядок.
Помогите, пожалуйста, составить программу без использования cin и cout. Буду очень благодарен и признателен.
Вот я тут написал небольшую часть:
Листинг программы
- void main()
- {
- char s[100];
- int k, i;
- printf_s("Введите строку: ");
- s[1]='a';
- s[2]='b';
- s[3]='c';
- s[4]='d';
- s[5]-'e';
- s[6]='f';
- s[7]='g';
- s[8]='h';
- s[9]='i';
- s[10]='j';
- s[11]='k';
- s[12]='l';
- s[13]='m';
- s[14]='n';
- s[15]='o';
- s[16]='p';
- s[17]='q';
- s[18]='r';
- s[19]='s';
- s[20]='t';
- s[21]='u';
- s[22]='v';
- s[23]='w';
- s[24]='x';
- s[25]='y';
- s[26]='z';
- k==0;
- }
Решение задачи: «Если буквы в строке упорядочены по алфавиту, то вывести 0; иначе вывести номер символа, нарушающего порядок»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- const int N = 40;
- int main()
- {
- int m, i;
- char j, a[40] = "a267bcd45e7fg89i1b5jkl5m8n5o7p3xy56z";
- for(i = 0; i < N; ++i){
- if(a[i] >= 'a' && a[i] <= 'z')
- j = a[i];
- m = i; break;
- }
- for(i = m; i < N; ++i){
- if(a[i] >= 'a' && a[i] <= 'z'){
- if(a[i] < j){
- printf("Element a[%d] break alphabetical order\n", i);break;
- }
- else
- j = a[i];
- }
- if(i == N - 1)
- printf("0\n");
- }
- return 0;
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с stdin/stdout и для работы с массивами
- Объявляем константу N, которая равна 40, это максимальное количество символов в строке
- Объявляем переменную m типа int, которая будет использоваться в цикле for
- Объявляем переменную i типа int, которая будет использоваться в цикле for
- Объявляем переменную j типа char, которая будет использоваться для сравнения символов
- Объявляем массив a типа char, который содержит строку
a267bcd45e7fg89i1b5jkl5m8n5o7p3xy56z
- В цикле for проходим по всем элементам массива a, проверяем, является ли символ буквой от 'a' до 'z'
- Если текущий символ является буквой от 'a' до 'z', то сохраняем его в переменную j и запоминаем индекс в переменную m
- После цикла for выводим сообщение об ошибке, если была найдена буква, нарушающая порядок, и выводим ноль, если все символы упорядочены
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д