为什么我的程序不能输出 i?

Why won't my program output i?

本文关键字:输出 不能 我的 程序 为什么      更新时间:2023-10-16

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

#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;
}

在我程序的主体中,我有一个代表我和我的功能 factnum i,但只有事实我正在输出?我该怎么做 我和factnum彼此相邻显示?

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

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

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

11
22
36
424
...

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

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

您会得到这个:

1 1
2 2
3 6
4 24
...

以及我如何修复我的循环,以便它继续询问 第一次运行后的数字用户?

您可以将main()中的代码重构为另一个功能,然后在询问用户更多数字后再次调用。我留给你的练习。如果您仍然为此而挣扎,则可以发布另一个问题(但只有在您自己真正尝试过之后)。

只有factnum i正在输出

您确定吗?您是否查看了正在输出的实际数字?尝试添加一个空间。

尝试这个,

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; }