如题,输入的参数是7,调用fun(7),进入fun函数,if判断,此时x=7,if语句的condition为真,继续调用fun函数fun(3)(7/2取整为3),进入fun函数,if判断,此时x=3,if语句的condition为假,执行if语句后的输出语句,输出3(此时x=3),返回上一层的fun函数调用(即是fun(7),因为第一次调用时,还留这一句输出语句没有执行),输出7(此次fun函数调用x=7),主函数结束。函数执行的解析:程序的执行从主函数开始,一条一条语句执行,语句存放在一定的数据空间里,这段空间就是代码段,一般情况下程序是按代码的地址顺序执行的,但是在函数调用,程序会暂停当前的代码的执行,把下一条应该执行的代码的地址放在另一个存储空间里(其实是压进栈了),而转去执行调用的函数代码,执行完所有函数应该被执行代码(是所有哦,当然分支语句里的一些语句可以不执行的),程序会把压进栈的指令地址取出来,继续执行下去,直到住程序结束。递归函数是一般函数用分支或者循环控制多次重复调用函数的情况。
目前成都创新互联已为上千余家的企业提供了网站建设、域名、虚拟主机、绵阳服务器托管、企业网站设计、永清网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
c函数是一个独立的程序段,它执行具体的、明确的任务
特点:
一个函数只能返回一个值
一个程序可以有一个或多个函数
函数可以嵌套调用,但不能在一个函数中定义另一个函数
无论函数是否有参数,一定要有括号
函数在定义或使用前应在main() 函数中进行声明
你是说调用自己的时候吗?
不需要!
因为函数的实现在函数定义的下边。编译器已经能够认识它了
看看我写的这段代码,运行环境为VC6。0
/**********************************************
歌德巴赫猜想
哥德巴赫猜想有两个内容,
第一部分叫做奇数的猜想,
第二部分叫做偶数的猜想。
奇数的猜想指出,
任何一个大于 等于7的奇数都是三个素数的和。
偶数的猜想是说,
大于等于4的偶数一定是两个素数的和
***********************************************/
#include stdio.h
int main ()
{
int n,i,j;
scanf ("%d",n); //输入一个整数
printf ("%d=",n);
if (n1) {printf ("3+"); n-=3;} //如果是奇数,找出一个为3,转化为偶数
for (i=2;in;i++)
{
for (j=2;j*j=i;j++) //判断i是否为素数
if (i%j==0) break;
if (j*j=i) continue;
for (j=2;j*j=n-i;j++) //判断n-i是否为素数
if ((n-i)%j==0) break;
if (j*j=n-i) continue;
break;
}
printf ("%d+%d\n",i,n-i);
return 1;
}
递推算法是一种用若干步可重复运算来描述复杂问题的方法.递推是序列计算机中的一种常用算法。它是按照一定的规律来计算序列中的每个项,通常是通过计算机前面的一些项来得出序列中的指定象的值。其思想是把一个复杂的庞大的计算过程转化为简单过程的多次重复,该算法利用了计算机速度快和不知疲倦的机器特点。
【例】
植树节那天,有五位同学参加了植树活动,他们完成植树的棵树都不相同。问第一位同学植了多少棵时,他指着旁边的第二位同学说比他多植了两棵;追问第二位同学,他又说比第三位同学多植了两棵;... 如此,都说比另一位同学多植两棵。最后问到第五位同学时,他说自己植了10棵。到底第一位同学植了多少棵树?
分析:设第一位同学植树的棵树为a1,欲求a1,需从第五位同学植树的棵数a5入手,根据“多两棵”这个规律,按照一定顺序逐步进行推算:
(1) a5=10;
(2) a4=a5+2=12;
(3) a3=a4+2=14;
(4) a2=a3+2=16;
(5) a1=a2+2=18;
使用这种方法,
第一步先例举一些关系式,找到规律,或者说找到通项公式
第二步找到结束程序的条件值
找到后直接用
if(结束条件)
return 结束时的值
else 通项公式
return 最后的返回值
把这个直接填到被调函数里面就可以了