
C++ без тернарных кодов Дано натуральное число, в котором все цифры различны. Определить:а)
порядковый номер его максимальной цифры, считая номера:от конца числа;от начала числа;б) порядковый номер его минимальной цифры, считая номера:от конца числа;от начала числа.

Ответы на вопрос

Ответ:
(a) int a, b=0,d=0,c;
cin >> a;
while(a>0)
{ d++;
if(a%10>b)
{b=a%10; c=d;}
a/=10; }
cout << c << " " << d-c+1; return 0;
(b) int a, b=10,d=0,c;
cin >> a;
while(a>0)
{ d++;
if(a%10<b)
{b=a%10;
c=d;}
a/=10;
} cout << c << " " << d-c+1;
return 0;
Объяснение:



Для решения этой задачи без использования тернарных операторов (условных операторов) в C++, вы можете воспользоваться структурами данных, циклами и простыми условными проверками. Вот пример кода, который выполняет указанную задачу:
cpp#include <iostream>
#include <string>
int main() {
// Ввод числа как строка
std::string num_str;
std::cout << "Введите натуральное число: ";
std::cin >> num_str;
// Инициализация максимальной и минимальной цифр, а также их порядковых номеров
char max_digit = num_str[0];
char min_digit = num_str[0];
int max_index_from_end = 0;
int min_index_from_end = 0;
int max_index_from_start = 0;
int min_index_from_start = 0;
// Поиск максимальной и минимальной цифр и их порядковых номеров
for (int i = 0; i < num_str.length(); ++i) {
if (num_str[i] > max_digit) {
max_digit = num_str[i];
max_index_from_end = i;
max_index_from_start = num_str.length() - i - 1;
}
if (num_str[i] < min_digit) {
min_digit = num_str[i];
min_index_from_end = i;
min_index_from_start = num_str.length() - i - 1;
}
}
// Вывод результатов
std::cout << "Максимальная цифра: " << max_digit << std::endl;
std::cout << "Порядковый номер максимальной цифры от конца: " << max_index_from_end << std::endl;
std::cout << "Порядковый номер максимальной цифры от начала: " << max_index_from_start << std::endl;
std::cout << "Минимальная цифра: " << min_digit << std::endl;
std::cout << "Порядковый номер минимальной цифры от конца: " << min_index_from_end << std::endl;
std::cout << "Порядковый номер минимальной цифры от начала: " << min_index_from_start << std::endl;
return 0;
}
Этот код считывает натуральное число как строку, затем перебирает все символы строки (цифры числа), находит максимальную и минимальную цифры, а также их порядковые номера от конца и начала числа, и выводит полученные результаты.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili