私の C++ の本から次の質問に答えようとしています。部屋には n 人がいます。n は 2 以上の整数です。各人は他のすべての人と 1 回握手します。部屋での握手の総数は? この問題を解決する再帰関数を書きます。プログラムを書きましたが、関数から何も出力されません。ハンドシェイク関数内の内容は正しいと確信していますが、メイン関数内の関数によって何も出力されていません。エラーが発生し続けます: Problem2.exe の 0x00c01639 で未処理の例外: 0xC00000FD: スタック オーバーフロー。事前に助けてくれてありがとう!
#include <iostream>
#include <conio.h>
using namespace std;
int handshake(int n);
int main()
{
int i, n;
cout<<"How many people are in the room? ";
cin>>i;
for (n = 1; n = i; n++)
{
handshake(n);
}
cout<<"There are "<<handshake(n)<<" in the room"<<endl;
getche();
return 0;
}
int handshake(int n)
{
if (n == 1)
{
return 0;
}
else if (n == 2)
{
return 1;
}
else
{
return (handshake(n) + (n - 1));
}
}