Предмет: Информатика, автор: Savage2112

(100баллов!) Написать программу на C++ - Ввести натуральне число та визначити його цифри, які кратні 3

Ответы

Автор ответа: kernelpanic
1

Ответ:

[Проверка каждой цифры из введенного с клавиатуры числа  производится с конца.]

Внимание: если Вы работаете в Visual Studio, то выражение scanf может выдывать ошибку, поэтому, в случае ее появления, замените scanf на scanf_s

В комментариях ниже записал немного другой вариант, который выглядит по-проще.

#include <iostream>

bool isMultipleOfThree(int number){

   //Проверка числа на "кратность" тройке

   return ((number % 3) == 0) ? true : false;

}

int main(int argc, const char * argv[]) {

   int digits = 0;

   printf("Введите число с клавиатуры: ");

   scanf("%d", &digits);

  while (digits > 0){

      int currentDigit = digits % 10;

      if (isMultipleOfThree(currentDigit)){

          printf("Цифра ('%d')\n", currentDigit);

      }

     

      digits/=10;

   }

   return 0;

}

Приложения:

Savage2112: а можно это всё расписать как то по простому? Ибо я не учил ещё такие формы
Savage2112: у меня простые циклы.
kernelpanic: #include

using namespace std;
int main(int argc, const char * argv[]) {
int digits = 0;
cout << "Введите число с клавиатуры: ";
cin >> digits;

while (digits > 0){
int currentDigit = digits % 10;

//Проверка числа на "кратность" тройке
if (currentDigit % 3 == 0){
printf("Цифра ('%d')\n", currentDigit);
}

digits = digits / 10;
}
return 0;
}
kernelpanic: Выше в комментарии случайно записал printf, поэтому держите такой вариант, где используется только std:

#include

using namespace std;
int main(int argc, const char * argv[]) {
int digits = 0;
cout << "Введите число с клавиатуры: ";
cin >> digits;

while (digits > 0){
int currentDigit = digits % 10;

//Проверка числа на "кратность" тройке
if (currentDigit % 3 == 0){
cout << "Цифра: " << currentDigit << endl;
}

digits = digits / 10;
}
return 0;
}
Savage2112: Cпасибо большое
Похожие вопросы