0

私のプログラムは、関数を作成して数値の階乗を見つけ、結果を表形式で表示することになっています。私のプログラムの本体には、coutforiと functionfactNum ifactNum 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;
}
4

3 に答える 3

4

私のプログラムの本体には、i の cout と関数 factNum i がありますが、factNum i だけが出力されていますか? i と factNum i の両方が隣り合わせに表示されるようにするにはどうすればよいですか?

あなたのプログラムは実際にとを隣り合わせに出力iします:i!

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

数字の間にスペースがないため、次のように表示されます。

11
22
36
424
...

2 つの数字の間にスペースを挿入した場合:

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 に答える