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