C++BEGINNER阶乘程序,输出混乱
C++ BEGINNER factorial program, confusing output
我正在MIT OCW上介绍C++,下面的代码在教授的第一道题集中给出,作为计算阶乘的基本程序,还有一些相关的问题。
#include <iostream>
using std::cout;
using std::cin;
int main ()
{
short number;
cout << "Enter a number: ";
cin >> number;
cout << "The factorial of " << number << " is ";
int accumulator = 1;
for(; number > 0; accumulator = (accumulator * (number--)));
cout << accumulator << '.n';
system("pause>nul");
return 0;
}
第一个问题是:"当您输入以下值时会得到什么:0、1、2、9、10?"
答案部分写着"0:1;1:1;2:2;9:362880;10:3628800",但对我来说并不是这样。我的程序输出"11768",继续每个明显正确的答案,我不知道为什么。
我看到的答案集是:"0:111768;1:111768;2:211768;9:36288011768;10:362880011768"
也许代码中有什么错误,但我看不出来。我正在使用Visual Studio 2012。也许有人有主意?谢谢你抽出时间。
更改:
cout << accumulator << '.n';
收件人:
cout << accumulator << ".n";
编译器正在将多字符文字'.n'
转换为整数11768
。此行为是由实现定义的。
可能应该学会使用endl,否则您会在某个时候被未冲洗的流弄糊涂。我知道我有。并不是说这是一个未冲洗的流问题,但如果OP习惯性地使用endl,他就不会有这个问题。
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 在MSDOS编译器上,用大于最大值的值初始化int时输出混乱
- 写入输出文件的星形菱形图案C++变得混乱
- 为什么这个C++程序的输出在cmd中产生了巨大的混乱
- 访问Ximea相机并使用OpenCV设置预定义的分辨率时,由于相机默认分辨率的大小为Mat,因此显示混乱的输出
- C++BEGINNER阶乘程序,输出混乱
- 并行计算--混乱的输出
- c++读取文本文件并输出等级和平均值到另一个文件(输出混乱)
- 当使用spirit以其他方式解析结构时,会导致输出混乱
- c++: Std::cout缓冲区错误?对字符串变量和字符串字面值使用std::cout导致输出混乱
- char[]混乱的输出
- 我想创建一个函数,我可以在其中输入一个字符串,它会输出一个混乱的字符串版本
- 多线程文本输出打印到dos控制台重叠/混乱输出