今天是2016年8月2日!有雷雨捏!
明白了函数的递归:函数自己调用自己,不用的话写return 0;。。
懂得了函数的四种形式:有返回值和有参数:int add(int a,int b){return a+b;},有返无参,无返有参,无返无参。。
知道了带有参数的要说明函数的类型(也要在小括号里声明类型)(需在主函数上方声明自己),只调知道了用函数里面的方法不用说明函数的类型和写参数(需要在主函数上方声明自己)。。
知道了实参单向传递给形参,在实参函数中需要定义变量,调用函数(因为定义变量的时候就给他了一个内存地址)。。
知道了头文件的定义include"stdio.h",可起到多定义、避免重定义的作用。。
知道了system("pause");是请按任意键以继续,可以替换getchar、Sleep哦。。
知道了如何打开网址ShellExecuteA(0,"open","www.baidu.com",0,0,1);打不开要更改最后一个参数。。
知道了keybd_event('K',0,0,0);keybd_event('K',0,2,0);的键盘输入用法,后面的一个是提起键。。
所谓递归就是“调用函数传参数,return自己参数和0退出”。。
知道了十进制转二进制的递归法(注意在主函数上方声明要调用的函数,注意在主函数里面调用函数传参,注意有system("pause");递归法可以倒着输出!!!):
#include<stdio.h>
#include<Windows.h>
int exchange(int x);
int main()
{
exchange(38);
system("pause");
}
int exchange(int x)
{
if(x>0)
{
exchange(x/2);
printf("%d",x%2);//printf在exchange下方可以倒着输出!!!
}
}
递归(1~100的和)
#include<stdio.h>
int sum(int n);
int main()
{
int i=100;
printf("1~%d的和为:\n",i);
printf("%d\n",sum(100));
return 0;
}
int sum(int n)
{
if (n==1)
return 1;
else
return n+sum(n-1);
}
递归(1~100偶数和)
#include<stdio.h>
#include<Windows.h>
int sum=0;
int exchange(int x);
int main()
{
exchange(100);
system("pause");
}
int exchange(int x)
{
if(x>0)
{
if(x%2==0)
{
sum=sum+x;
printf("%d\n",x);
}
exchange(--x);
}
else
{
printf("%d",sum);
}
}
递归三要素:边界(没有边界就是死循环)、调用自己、算法。。
要注意exchange(--x);和exchange(x--);很不一样,同样是调用,但前者是先减,而后者先不减,调用就毫无意义了。。
要注意exchange(--x);放置的位置,不能碰到有阻止其调用的语句,要放在一个非常安全的地方。。
递归其实是个很好玩的东西!~