我试图从我的 C++ 书中回答这个问题:房间里有 n 个人,其中 n 是大于或等于 2 的整数。每个人与其他人握手一次。房间里握手的总数是多少?写一个递归函数来解决这个问题。我编写了一个程序,但该函数没有输出任何内容。我很确定握手函数中的内容是正确的,但是主函数中的函数没有输出任何内容。它一直给我一个错误: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));
}
}