首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

递归函数,如何了?吼吼

2012-04-15 
递归函数,怎么了?吼吼#include stdio.hvoid main(){int fax(int x,int a[])int a[10],x,m,i,fxscanf(

递归函数,怎么了?吼吼
#include "stdio.h"
void main()
{
int fax(int x,int a[]);
  int a[10],x,m,i,fx;
  scanf("%d%d",&x,&m);
  for(i=0;i<10;i++)
  scanf("%d",&a[i]);
  fx=fax(x,a);
  fx=fx%m;
  printf("%d\n",fx);
}
int fax(int x,int a[])
{
int i,k=0;
if(x<10)
k=x;
else
{
for(i=0;i<10;i++)
k+=fax(x-1-i)*a[i];
}
return k;
}

一直出现c2198错误!没有搞明白,x>=10或小于10我都有交代啊!
程序的意思是,当x大于10时,执行
for(i=0;i<10;i++)
k+=fax(x-1-i)*a[i];
我自己试运行一下,比如当x=10,a[10]={1,1,1,1,1,1,1,1,1,1}
调用fax函数,因为x>10执行第二步,K=K+fax(9)*1;fax(9)=9
所以k=9;
i=1;k+=fax(8)*1;
k=17
.
.
.
就这样啊!怎么错了!
最后在主函数你输出啊!

[解决办法]
提供给函数 ‘fax’ 的实参太少
[解决办法]
k+=fax(x-1-i)*a[i];仅提供了一个参
但你定义的函数有两个参
并且没有默认参数

[解决办法]
k+=fax(x-1-i,a)*a[i];语法无误
不过结果是否是你想要的就要自己测试了

热点排行