Если буквы в строке упорядочены по алфавиту, то вывести 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, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д