递归函数的使用

在分析递归函数的调用时要一层一层的薄丝,然后再根据结果反推要要实现的内容,因为我们根据程序分析是从最里面分析的

一、输入一个数将每一个数都一次打印出来:

这里要用到取模和除整的运算:

要记住的是取模取的位数是0的个数,%10那么取的就是0-9,%100那么取的就是0-99

除整就是将小数点向前移动几位然后将前面的数值保留下来

二、利用函数计算字符串的长度:

这里要注意的是关于字符串的传入,传入数组时,传入的是首个元素的地址,那么便需要用指针来接收这个地址,在对地址内容进行操作是需要用到解引用,而想操作数组的其他元素时,需要对定义的指针进行操作 还有注意的是字符串数组结束的标志是‘\0’不能用双引号将\0括起来

 将一个数的每一都打印出来

void print(int n) {
	if (n > 9) {
		print(n / 10);
		
	}
	printf("%d ", n % 10);
}

int main() {
	int num = 0;
	scanf("%d", &num);
	print(num);

}


利用函数打印出字符串的长度
int my_len(char* arr) {
	int i = 0;
	while(*arr != '\0') {
		
		i++;
		arr++;
	}
	return i;
}
 递归的方法实现
int my_len(char* arr) 
{
	if (*arr != '\0') {
		return 1 + my_len(arr + 1);
	}
	else {
		return 0;
	}
}

int main() {
	char arr[]= "abc";

	int len = my_len(arr);
	printf("len=%d\n",len);




}

 递归实现n的阶乘
int fun(int n) {
	if (n <= 1)
	{
		return 1;
	} 
	else{
	
		return n*fun(n - 1);
	}


}


int main() {

	int n = 0;
	printf("请输入一个数\n" );
	scanf("%d",&n);
	int sum= fun(n);
	printf("%d", sum);

}

s

上一篇:数据类型的内置方法


下一篇:Linux c 开发-13 Makefile与VisualStudio Linux C环境对应关系