一,接受一个整型值(无符号),按照顺序打印它的每一位
(一)、代码
#include<stdio.h>
#include<stdlib.h>
typedef unsigned int uint;
/*
接受一个整型值(无符号),按照顺序打印它的每一位
*/
void print(uint n){
if (n > 9){
print(n/10);
}
printf("%d ", n%10);
}
int main(){
uint n = 12345;
print(n);
getchar();
system("pause");
return 0;
}
(二)、结果
(三)、总结
通过递归来实现打印每一个数字,具体做法为:
(一)传入参数:一个无符号整性数字
(二)递归条件:n > 9,即数字为个位数字停止
(三)递归体:n/10,由于先打印出来的是最后一次递归的结果,因此,需要每一次递归得到的数字都是由后面到前面的顺序得到的。
二、编写函数不允许创建临时变量,求字符串的长度。
(一)、代码
#include<stdio.h>
#include<stdlib.h>
/*编写函数不允许创建临时变量,求字符串的长度*/
int Strlen(char* str){
if (*str == '\0')
return 0;
else
return 1 + Strlen(str+1);
}
int main(){
char* p = "absce";
int len = Strlen(p);
printf("%d\n",len);
system("pause");
return 0;
}
(二)、结果