这就是递归调用
成都创新互联是一家专业提供巩留企业网站建设,专注与成都网站建设、网站设计、H5开发、小程序制作等业务。10年已为巩留众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
递归要两个方面注意
一个是结束递归的条件,也就是当满足一个条件是,返回一个固定的值
一个是改变递归条件的语句。也就是不满足条件的时候,调用自身,但是函数的参数要改变
如求n!就是阶乘
int f(int n)
{
if(n==0)
return 0;
if(n==1) //这里是结束条件
return 1;
else
return n*f(n-1); //这里是改变条件
}
#include cstdlib
#include iostreamusing namespace std;
int calculate( int a, int b, int c )
{
return a*a*a+b*b*b+c*c*c;
}
int main(int argc, char *argv[])
{
int x, y, z, l;
cout " 计算等式的结果 " endl;
cout " ------------------------------------------------- " endl;
cout " 请输入x,y和z的值: ";
cin x y z;
l = calculate( x, y, z );
cout " 这3个数的立方和是 " l endl;
system("PAUSE");
return EXIT_SUCCESS;
}
做好了,请检查。。。
#include stdio.h
void fun(int * a,int k);
void main()
{
int a[10];
printf("请输入10个整数:\n");
for(int i=0;i10;i++)
{
scanf("%d",a[i]);
}
fun(a,sizeof(a)/sizeof(a[0]));
}
void fun(int a[],int k)//这就是你想要的函数
{
int g0=0,t0=0,e0=0;/*g0就是0,t0就是小于0,e0就等0*/
for(int i=0;ik;i++)
{
if(a[i]0) g0++;
if(a[i]==0) e0++;
if(a[i]0) t0++;
}
printf("大于0的个数为:%d\n",g0);
printf("小于0的个数为:%d\n",t0);
printf("等于0的个数为:%d\n",e0);
}
/*
说明就和ichenq的差不多,只是ichenq的那个有问题,比如他的if语句里多了几个";"号,导致无没通过,另外我用他的函数来测试得不到想要的结果
sizeof(a)/sizeof(a[0])就是数组a的长度*/