0

我的程序应该通过创建一个函数来找到一个数字的阶乘,并以表格格式显示结果。在我的程序的主体中,我有一个coutfori和我的 function factNum i,但只是factNum i输出?如何使两者ifactNum i彼此相邻显示?而且,如何修复我的 for 循环,以便在第一次运行后继续向用户询问数字?

#include <iostream>
#include <cmath>
using namespace std;


int factNum ( int num)
{
  int answer = 1;

  for (int i = 1; i <= num; i++)
  {
      answer = answer * i;
  }
  return answer;
}

int main()
{
  int num;

  cout << " Enter a number, or -1 to quit: " << endl;
  cin>> num;

  for (int i= 1; i<=num; i++){
    cout<< i << factNum(i)<< endl;
  }

  if( num == -1)
    cout<< " Goodbye! "<< endl;

   return 0;
}
4

3 回答 3

4

在我的程序的主体中,我有一个 cout 和我的函数 factNum i,但只有 factNum i 被输出?如何使 i 和 factNum i 彼此相邻显示?

实际上,您的程序确实同时输出ii!彼此相邻:

cout << i << factNum(i) << endl; 

数字之间没有空格,所以你看到的是:

11
22
36
424
...

如果在两个数字之间插入一个空格:

cout << i << " " << factNum(i) << endl; 

你会得到这个:

1 1
2 2
3 6
4 24
...

而且,如何修复我的 for 循环,以便在第一次运行后继续向用户询问数字?

您可以将代码重构main()为另一个函数,并在向用户询问更多数字后再次调用它。我留给你作为练习。如果您仍然对此感到困惑,您可以发布另一个问题(但只有在您自己真正尝试过之后)。

于 2012-10-21T19:04:03.563 回答
1

只有 factNum i 正在输出

您确定吗?你看过实际输出的数字吗?尝试添加空格。

于 2012-10-21T19:03:42.037 回答
1

尝试这个,

int main()
{

int num;
while(1)
{
cout << " Enter a number, or -1 to quit: " << endl;
cin>> num;


for (int i= 1; i<=num; i++)
{
cout<< i << "   "<<factNum(i)<< endl;
}

if( num == -1)
cout<< " Goodbye! "<< endl;
}
return 0; }
于 2012-10-21T19:05:20.430 回答