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

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

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

Доброго времени суток! Помогите с программой пожалуйста. Отблагодарю не только словами. Программу надо написать на языке

Си

.

Задание

: Дан текст, состоящий из прописных и строчных букв. Проверить, упорядочены ли строчные буквы по алфавиту.

Как должно работать

: Вводим одну или несколько строк, содержащий(-ие) строчные и прописные буквы, проверка строчных букв на упорядоченность по алфавиту и вывод результата проверки.
В программе организован понятный для пользователя ввод/вывод (при запросе исходных данных соответствующий запрос должен выводиться на экран с соблюдением правил написания (все пробелы, знаки препинания и пр. должны быть на месте)); Вводимые данные проверяются на корректность (например: если требуется ввести неубывающую последовательность чисел, то при невыполнении этого требования пользователю выводится поясняющее сообщение и предоставляется возможность повторного ввода и т.п.); Исходный код программы понятен, легко читается, и выдержан в едином стиле; Имена переменных осмысленны и понятны (например, amount для переменной, в которой хранится количество, или sum – для суммы, или temp – для переменной, предназначенной для временного хранения данных и т.п.)
Также прошу прокоменнтировать наиболее важные места, и описать как работает. Мне нужно сдать в 12:00 05.10.12, до 11:40 нужно управиться. Первый кто сделает рабочую и оформленную по критериям программу, получит:

Игровой аккаунт origin с несколькими популярными играми

Но если вам это не интересно, то я вас прошу просто помочь, действительно незнаю синтаксиса хотя алгоритм вроде понимаю как можно было бы это сделать.

Большое спасибо. Добрый человек я жду тебя.

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

textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
    
int main(void) {
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ){
        char last = 0, * ptr;
        for ( ptr = buf; *ptr; ++ptr ) {
            if ( islower(*ptr) ) {
                if ( *ptr <= last )
                    break;
                else
                    last = *ptr;
            }
        }
        printf("%sorted.\n", ( *ptr ) ? "Uns" : "S");
    }
    
    return 0;
}

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

Вывод:

  1. Объявлена переменная типа char с именем buf и размером BUFSIZ.
  2. В цикле while происходит запрос на ввод строки с помощью функции fgets в буфер buf.
  3. Если строка успешно введена, то в цикле for проходим по каждому символу строки.
  4. Если текущий символ является строчной буквой, то проверяем его относительное положение в алфавите относительно предыдущего символа.
  5. Если текущий символ меньше или равен предыдущему, то выходим из цикла.
  6. Если текущий символ больше предыдущего, то обновляем значение переменной last.
  7. После цикла выводим сообщение о том, что строка отсортирована или нет.
  8. Цикл while повторяется до тех пор, пока не будет введена строка и не будет нажата клавиша Enter.
  9. В конце программы возвращается 0, что означает успешный конец работы программы.

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


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

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

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