纯小白,想编个阶乘,却无法停止循环。
以下为编程内容
#include
using namespace std;
int main( )
{
int n;
while(cin>>n){
int a=1;
for(int i=1;i<=n;i++){
a*=i;
}
cout<<a<<endl;
}
return 0;
}
我想,当输入n为0时,是否能表示假,然后结束循环呢?我试了一下,输入0后并没有结束,而是输出了1,并可以继续输入,这是为什么呢?是我没有理解while么?还是其他问题?如果我要停止循环,只能加个if(n==0) break;了?
求指点,您的任何一句都将使我受益。
谢谢!
“0”与“假”的区别?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- CSDN专家-天际的海浪 2021-10-06 23:49关注
cin>>n的返回值不是读取的n的值。
cin>>n返回的也是一个cin对象,当一个cin对象作为条件选择、循环等的控制表达式时,编译器会将其转换为真值表达式,如果cin的iostate为goodbit,则这个真值表达式的结果为真,否则为假。
输入一个非数字可以置位failbit,从而结束循环,当然这是一个非正常退出。
正常退出可以用键盘模拟产生EOF,表示流输入结束了。在windows中可以输入ctrl+z,unix/linux中则为ctrl+d。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥17 pro*C预编译“闪回查询”报错SCN不能识别
- ¥15 微信会员卡接入微信支付商户号收款
- ¥15 如何获取烟草零售终端数据
- ¥15 数学建模招标中位数问题
- ¥15 phython路径名过长报错 不知道什么问题
- ¥15 深度学习中模型转换该怎么实现
- ¥15 Stata外部命令安装问题求帮助!
- ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
- ¥15 TYPCE母转母,插入认方向
- ¥15 如何用python向钉钉机器人发送可以放大的图片?