我正在写一个吐出所谓斯特林数的函数。我写的代码如下:
int SecondStirling(const int& k, const int&n){
if(k<0||n<0) return 0;
if(k==0 && n>0) return 0;
if(k>0 && n==0) return 0;
if(k>n) return 0;
if(k==n) return 1;
else return k(SecondStirling(k,n-1))+SecondStirling(k-1,n-1);
}
但是,我在最后一行收到错误:错误:表达式必须具有(指针到)功能类型,该错误特指k。是什么给了什么?
答案 0 :(得分:3)
与数学不同,乘法运算符*
不能省略。变化
k(SecondStirling(k,n-1))
到
k * (SecondStirling(k,n-1))
答案 1 :(得分:2)
写作
k(SecondStirling(k,n-1))
您正在尝试调用名为&#34; k&#34;的函数,或者指向&#34; k&#34;,接受int类型的单个参数(由SecondStirling返回)。 但是&#34; k&#34;是一个int变量,因此是错误。 正如已经指出的那样,正确的语法是
k * (SecondStirling(k,n-1))