我的程序为什么不输出?

时间:2012-10-21 18:59:08

标签: c++ codeblocks

我的程序应该通过创建函数找到数字的阶乘,并以表格格式显示结果。在我的计划的主体中,我cout i,我的函数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;
}

3 个答案:

答案 0 :(得分:4)

  

在我的程序的主体中,我有一个cout for i和我的功能   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()中的代码重构为另一个函数,并在询问用户更多数字后再次调用它。我把这作为练习留给你。如果你仍然在努力解决这个问题,你可以发布另一个问题(但只有在你自己真正尝试过之后)。

答案 1 :(得分:1)

  

只有factNum i正在输出

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

答案 2 :(得分: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; }