用C++写一个求函数的有关问题 大神来帮帮

用C++写一个求函数的问题 大神来帮帮
用C++写一个求函数的有关问题 大神来帮帮
这个函数
要求e的x次方用一个函数。
下面是我写的,运行一输入比1大的数就停止运行了,请问有问题么?
#include<iostream>
using namespace std;
#define e 2.718
double ZS(int);
double main()
{
int m;
cout<<"请输入一个整数m:";
cin>>m;
double s=(ZS(m)-1/(ZS(m)));
cout<<"sinh(m)"<<s/2<<endl;
return 0;
}
double ZS(int x)
{
int i;
double f;
if(x==0)
f=1;
if(x==1)
f=e;
else 
{
for(i=2;i<=x;i++)
{
f=e*ZS(x);
}
}
return f;
}

------解决方案--------------------
首先把这里 for(i=2;i<=x;i++)
        {
            f=e*ZS(x);
        }
------解决方案--------------------
去掉,改成 for循环 ,然后改成f = e*ZS(x-1),不然就无限循环加递归了,输个大于1的数不死循环才怪