Предмет: Информатика,
автор: emich2780
С++ Цикл while пользователь вводит число надо найти произведение цифр его числа . МАКСИМАЛЬНО ПРОСТО
iolandavalerypad353:
Переведи число в строку S, потом задаешь i = 1 и P = 1, потом в цикле пока i<длины строки делаешь агрегацию (произведение) P*=S[i] и увеличиваешь i++. Я С++ не знаю, но тут нужно найти всего две функции (метода): перевод целого в строку и перевод символа (или строки) в целое. Должны такие быть в С++.
Ответы
Автор ответа:
1
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int number, multi = 1;
cin >> number;
while(number != 0){
multi *= number %10;
number /= 10;
}
cout << multi << endl;
system("pause");
return 0;
}
1. Почему дефайним и инициализируем в строчку?
2. Почему ввод данных не валидируется?
3. Почему в цикле литерал - справа?
4. Зачем ставим паузу? Или работаем в винде и не умеем запускать консольные рпограммы?
5. Зачем для паузы целый заголовок инклюдить? Может тогда уж просто сделает inf loop?
Одним словом: данные не валидируются, код потенциально опасный, так ещё и с лишним функционалом, но без необходимого (:
6. Зачем глобальный using namespace? Не знаем к чему это приводит?
Похожие вопросы
Предмет: Математика,
автор: petrenkosteffi
Предмет: Математика,
автор: artemilievich1234567
Предмет: Информатика,
автор: semgroza
Предмет: Математика,
автор: kirillgaleev
Предмет: Химия,
автор: NoName0000000000