十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这就是递归调用
创新互联长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为平顶山企业提供专业的成都网站制作、网站设计、外贸网站建设,平顶山网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
递归要两个方面注意
一个是结束递归的条件,也就是当满足一个条件是,返回一个固定的值
一个是改变递归条件的语句。也就是不满足条件的时候,调用自身,但是函数的参数要改变
如求n!就是阶乘
int f(int n)
{
if(n==0)
return 0;
if(n==1) //这里是结束条件
return 1;
else
return n*f(n-1); //这里是改变条件
}
main函数包含两个参数,比如代码:
#include stdio.h
int main(int argc, char *argv[])
{
int i = 0;
for (; i argc; ++i)
{
printf("Arg index:%d,value:%s\n", i, argv[i]);
}
return 0;
}
其中,argc表示参数的个数,argv是一个指针数组,里面保存的是参数列表。
默认情况下,argc的个数为1,即主程序的名字,argv[0]里就是主程序名字
如果要给主程序传参,在主程序后面跟上参数就行了,假如程序名叫Send.exe,则使用如下方式调用:Send.exe arg1 arg2 arg
参数之间用空格隔开
如图:
如果在开发环境里面调用,也可以在IDE里设置参数,如VC6里面:
在工程--设置,选中调试选项卡,在应用程序参数里面输入参数即可,空格隔开多个参数
#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的长度*/
#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;
}
做好了,请检查。。。