目录
1、想要把如下判断语句变成循环语句时,把if→while即可
1、想要把如下判断语句变成循环语句时,把if→while即可
int my_strlen(char* s) { int count = -; if (*s != 0) { count++; s++; } }
2、写递归的常见困惑
//求n的阶乘 int Fac(int n) { int a = 0; if (n <= 1) { return 1; } else { return n * Fac(n - 1); } } int main() { int n = 0; scanf("%d", &n); printf("%d",Fac(n)); return 0; }
本段代码想要计算n的阶乘,在自定义函数中,常常会遇到以下问题:
1、返回值return到底是什么:一般是自变量的相关变形
2、不会构建递归的反复引用自己:构建“下一个目标值=上一个目标值与返回值的函数进行相关运算”
ex:return n * Fac(n - 1);
return 1 + my_strlen(s+1);
3、关于指针
char arr[20]
1、数组arr每个元素类型都为char类型
2、数组名arr=数组首元素地址
char * s
1、指针s指向的数据类型是char,*指这里定义的是指针
2、指针++就是地址++
4、getchar()
1、读取字符
2、返回类型是int
3、读取结束或失败时,返回EOF
5.生成随机数
头文件包含: #include <stdlib.h> 和 #include <time.h>
main函数里包含如下代码:
srand( (unsigned int) time (NULL) );
使用时直接调用 rand() 即可产生一个随机数
例如:想要生成1-9的随机数,只需要 int a=rand() %9+1 即可
6.关于EOF的使用
C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。
- while(scanf("%d",&n) != EOF)
EOF还可以被替换成~语句,例如以下两句等价
- while(scanf("%d %d %d",&a, &b, &c) != EOF)
- while (~scanf("%d %d %d", &a, &b, &c))
持续更新