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

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

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

Сравнение строк. Составить из двух заданных слов (под словом будем понимать любую последовательность символов, не содержащую в себе пробельных символов) предложение, в котором слова будут упорядочены .

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

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
#define WORD_LENGTH (64)
#define get_word(w) ( scanf("%63s", (w)) == 1 )
 
int main(void) {
    char w1[WORD_LENGTH], w2[WORD_LENGTH];
    int cmp;
    
    while ( printf("Two different words (max %d symbols for each): ", WORD_LENGTH - 1) && get_word(w1) && get_word(w2) && ( cmp = strcmp(w1, w2) ) )
        printf("Alphabetically sorted: %s %s\n", ( cmp < 0 ) ? w1 : w2, ( cmp < 0 ) ? w2 : w1);
    
    return 0;
}

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

  1. Подключение необходимых библиотек для работы с файлами и строками
  2. Определение константы WORD_LENGTH, которая задает максимальное количество символов в словах
  3. Определение функции get_word, которая считывает слово из стандартного ввода и проверяет его на корректность (не более 63 символов)
  4. Создание двух массивов типа char w1 и w2 для хранения считанных слов
  5. Создание переменной cmp для сравнения строк
  6. Организация цикла while, который будет выполняться до тех пор, пока пользователь вводит два разных слова и результат сравнения не изменится
  7. Внутри цикла выводится приглашение для ввода двух слов
  8. Если слово успешно считывается с помощью функции get_word, то оно сохраняется в соответствующий массив
  9. Выполняется сравнение двух слов с помощью функции strcmp
  10. С помощью условного оператора if выводится первое или второе слово в зависимости от результата сравнения
  11. Цикл продолжается до тех пор, пока не будут введены два разных слова или не будет достигнут максимальный количество символов в словах
  12. В конце программы возвращается 0, что означает успешное выполнение программы

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

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