我的程序应该通过创建函数找到数字的阶乘,并以表格格式显示结果。在我的计划的主体中,我cout
i
,我的函数factNum i
,但只输出factNum i
?如何将i
和factNum 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;
}
答案 0 :(得分:4)
在我的程序的主体中,我有一个cout for i和我的功能 factNum i,但只有factNum i正在输出?我怎么做到这一点 i和factNum i彼此相邻显示?
您的程序确实会将i
和i!
输出到彼此旁边:
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; }