Дано 3х значное число. Проверить истинность "все цифры данного числа различны" - C (СИ)

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

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

Дано 3х значное число.Ппроверить истинность высказывания "все цифры данного числа различны" в общем, нужно ввести число и чтоб прога написала -верно (если цифры разные) и не верно в противном случае... Находил подобные задачи но не на Си. Помогите, думаю многим будет полезно.

Решение задачи: «Дано 3х значное число. Проверить истинность "все цифры данного числа различны"»

textual
Листинг программы
#include <stdio.h>
 
#define test(a) ( (a) / 100 != (a) / 10 % 10 && (a) / 100 != (a) % 10 && (a) / 10 % 10 != (a) % 10 )
 
int main(void) {
    int n;
    
    while ( printf("Number: ") && scanf("%d", &n) == 1 && n > 0 && n < 1000 )
        printf("%s\n", ( test(n) ) ? "True" : "False");
    
    return 0;
}

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

В этом коде:

  1. #include Указывает компилятору включить в программу функции файла стандартного ввода/вывода, нужные для отправки сообщений в консоль
  2. #define test(a) ( (a) / 100 != (a) / 10 % 10 && (a) / 100 != (a) % 10 && (a) / 10 % 10 != (a) % 10 ) Это определение функции, которая будет проверять условие все цифры данного числа различны. Она делит число на 100, затем на 10 (с остатком), и затем на 10 снова (с остатком). Если остатки от деления на 10 совпадают, то это значит, что есть две одинаковые цифры в числе. Если же остатки от деления на 10 не совпадают, то все цифры различны.
  3. int main(void) { Это функция main(), то есть то место, с которого начинается выполнение любой программы на языке C.
  4. while ( printf(Number:) && scanf(%d, &n) == 1 && n > 0 && n < 1000 ) Это цикл while, который будет выполняться до тех пор, пока пользователь не введет число, не большее 1000 и не меньшее 1. Внутри цикла выводится приглашение для ввода числа, затем считывается само число в переменную n.
  5. printf(%s\n, ( test(n) ) ? True : False); Это оператор if-else, который проверяет результат функции test(n) и выводит соответствующее сообщение True или False.
  6. return 0; Это обязательная инструкция в функции main(), которая указывает, что программа успешно завершилась. Список действий:
  7. Включить функции ввода/вывода из стандартного файла.
  8. Определить функцию test(), которая проверяет условие все цифры различны.
  9. Определить функцию main(), которая является точкой входа в программу.
  10. Запустить цикл while, который будет выполняться до тех пор, пока пользователь не введет число, не большее 1000 и не меньшее 1.
  11. Внутри цикла выводится приглашение для ввода числа.
  12. Считывается само число в переменную n.
  13. Результат функции test(n) проверяется с помощью оператора if-else и выводится соответствующее сообщение True или False.
  14. Программа успешно завершается с помощью инструкции return 0;.

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


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

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

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