【发布时间】:2019-10-21 16:30:20
【问题描述】:
我正在尝试编写一个程序来计算给定数字的阶乘。但是如果用户输入一个小于或等于 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;
}
当我输入无效数字时,程序要求我重试,但我无法输入任何数字。所以我的问题是:
a)我该怎么做?
b)我的代码中有什么不清楚的地方吗?
c)如果我希望程序在我按下输入按钮之前给我输入的数字的结果怎么办?我该怎么做? (比如,我希望它按照 6 24 120 的顺序给我 3 4 和 5 的结果,然后按 Enter 键结束程序)
【问题讨论】:
-
while(a<=0);不是您编写实际while循环的方式(这个循环要么是无限的,要么永远不会执行)
标签: c++ while-loop factorial