输入若干行整数,一行一个整数,然后以若干行输出各行的阶乘

输入描述:
若干行,每行一个整数n(1<=n<=20)。

输出描述:
按顺序输出每个整数的阶乘,一个结果占一行。

输入样例1:
2
6
(结尾无空行)
输出样例1:
2
720
(结尾无空行)

输入样例2:
5
1
3
(结尾无空行)
输出样例2:
120
1
6
(结尾无空行)

你题目的解答代码如下:

#include<iostream>
using namespace std;

int main()
{
    int i,n=5;
    long long f;
    while (cin >> n)
    {
        f = 1;
        for(i=2;i<=n;i++)
            f *= i;
        cout << f << endl;
    }
    return 0;
}

如果要在手工输入时,让输入和输出内容就是分开的。
可以用数组保存输出结果,全部输入完毕后输出。
由于没有规定输入的数量。在window系统中,通过键盘输入时,按Ctrl+Z组合键后再按回车键,就代表输入结束。
在UNIX/Linux/Mac OS系统中,Ctrl+D代表输入结束。

#include<iostream>
using namespace std;

int main()
{
    int i,n,j=0;
    long long f[100];
    while (cin >> n)
    {
        f[j] = 1;
        for(i=2;i<=n;i++)
            f[j] *= i;
        j++;
    }
    for(i=0;i<j;i++)
        cout << f[i] << endl;

    return 0;
}

如有帮助,望采纳!谢谢!