小技巧tips

目录

 1、想要把如下判断语句变成循环语句时,把if→while即可

2、写递归的常见困惑

 3、关于指针

 4、getchar()

 5.生成随机数

 6.关于EOF的使用


 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))

 持续更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值