Я пытаюсь сделать программу для вычисления факториала от заданного числа. Но если пользователь вводит число, которое меньше или равно 0, я хочу, чтобы программа захотела его, пока он не введет число, которое больше 0.
#include <iostream>
using namespace std;
void facto(int a){
int faktoriyel = 1;
for(int i=1;i<=a;i++){
faktoriyel *=i;
}
cout << "The result:" << faktoriyel << endl;
}
int main(){
int a;
cout<<"Please enter a valid number:"; cin >> a;
if(a<=0){
cout<<"You entered an invalid number. Please try again.";
}
while(a<=0);
facto(a);
return 0;
}
Когда я ввожу неверный номер, программа просит меня повторить попытку, но я не могу ввести какие-либо числа. Итак, мои вопросы:
а) Как я могу это сделать?
б) Что-то неясно в моем коде?
в) Что если я бы хотел, чтобы программа выдала мне результаты введенных чисел, пока я не нажал кнопку ввода? Как мне это сделать? (Например, я хочу, чтобы он дал мне результаты 3 4 и 5 в порядке 6 24 120, а затем я нажимаю Enter, чтобы завершить программу)