Написать программу для решения (все в одной программе). показать диалог с пользователем (вывод сообщений и полученных значений). решить в кумире введено трехзначное число x а) вывести цифры этого числа (а, b, с) б) проверить, образуют ли цифры этого числа палиндром? в) образуют ли цифры данного числа возрастающую последовательность? г) определить и вывести максимальную цифру данного числа д) определить сумму чисел полученного числа (s) е) определить, является ли число s четным и кратным 3 ж) определить принадлежит ли число s интервалу (10 з) вывести перевертыш этого числа (справа налево)
void choicesSort(int* arrayPtr, int length_array) // сортировка выбором
{
for (int repeat_counter = 0; repeat_counter < length_array; repeat_counter++)
{
int temp = arrayPtr[0]; // временная переменная для хранения значения перестановки
for (int element_counter = repeat_counter + 1; element_counter < length_array; element_counter++)
{
if (arrayPtr[repeat_counter] > arrayPtr[element_counter])
{
temp = arrayPtr[repeat_counter];
arrayPtr[repeat_counter] = arrayPtr[element_counter];
arrayPtr[element_counter] = temp;
}
}
}
}
UPD: Под Ваш конкретный случай. Попробуйте этот код:
Проблема в строке c:= (b*b*b);
Ты ищешь сумму кубов, а для 4-значных чисел нужно искать сумму 4-х степеней. Нужно проверять число а: если от 100 до 999, то выполняем c:= (b*b*b); а если от 1000 до 9999, то выполняем c:= (b*b*b*b);
Код ниже работает и выдаёт результат:
число Армстронга ==> 153
число Армстронга ==> 370
число Армстронга ==> 371
число Армстронга ==> 407
число Армстронга ==> 1634
число Армстронга ==> 8208
число Армстронга ==> 9474
var a,b,c,d,a2:integer;
begin
for a:=100 to 9999 do begin
d:=0;
a2:=a;
while (a2 <> 0) do begin
b:= a2 mod 10;
a2:= a2 div 10;
if a<1000 then c:= (b*b*b)
else c:= (b*b*b*b);
d:= d+c;
end;
if (a = d) then writeln('число Армстронга ==> ', a);
end;
end.