🌞欢迎来到C语言的世界
🌈博客主页:卿云阁💌欢迎关注🎉点赞👍收藏⭐️留言📝
🌟本文由卿云阁原创!
🌠本阶段属于锻体阶段,希望各位仙友顺利完成突破
📆首发时间:🌹2021年1月21日🌹
✉️希望可以和大家一起完成进阶之路!
🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!
目录
0️⃣✨✨✨宏定义✨✨✨
宏定义包括不带参数的宏定义和带参数的宏定义两种。格式为:
#define标志符[(参数列表)] 字符串
这里的标志符称为宏名,[]表示可有可没有。将宏替换成字符串的过程称为“宏展开”,它在预处理阶段完成。
(1) 不带参数的宏定义。格式为:
#define 标识符 字符串
#include<stdio.h> #define PI 3.1415 int main(void) { int r = 3; int area; area=r*r*PI; printf("area=%d",area); return 0; }
(2) 带参数的宏定义。这是一种复杂的宏定义,其格式为:
#define 标识符(参数列表) 字符串
其中字符串包括参数列表的内容。预处理时,把括号中对应的参数原封不动地换成字符串中出现的参数,字符串中其余字符不变。
#include<stdio.h> #define max(x,y) x>y?x:y int main(void) { int a=3; int b=4; printf("max=%d",max(a,b)); return 0; }
记住:原封不动
我个人认为一个好的程序具有以下特点:
1.易于阅读
2.易于纠错
3.运行速度快
4.占用内存小
5.易于复用(便于产品升级)
1️⃣✨✨✨ 随机数和时间函数✨✨✨
srand((unsigned)time(NULL))
现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下:
1) 首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535;
2) 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)
3) 根据需要多次调用rand(),从而不间断地得到新的随机数;
4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。若之前没有调用srand(seed),那么系统会自动给seed赋初始值,即srand(1)自动调用它一次
要想使用随机函数rand(),就必须先要初始化随机种子。具体点就是在main函数的开头加上srand((unsigned)time(NULL))就可以了,由于需要使用time所以还必须添加上time.h头文件。
例如:
从1、2、3、4、5、6、7、8、9、0这十个数中随机取出一个数,取出的数是6的话,那么6就叫随机数。十个数字就叫随机数种子。
如果是从1到50之间取数字,取出的数字叫随机数,这1到50那50个数字就叫随机数种子。rand() 是产生一个随机整数的函数,其分布范围是0到最大的整数,
rand() %100 指和100取余,得到一个0到99整数
rand() %100 +1 得到一个1到100的整数二,例子
用srand(time(NULL));作为种子,生成100个50到100之间的整数,并把它们每10个一行输出出来,观察它们相同数据的情况。观察各数出现的频率是否大致一样?如果生成100个50到60之间的整数,做同样的操作再观察各数出现的频率规律。
#include <stdlib.h> #include <stdio.h> #include <time.h> /*用到了time函数,所以要有这个头文件*/ int main( void) { int number[100] = {0}; int i; srand((unsigned) time(NULL)); //设置种子 for(i = 0; i < 100; i++) { number[i] = rand() % 51 + 50; //产生随机数 printf("%d ", number[i]); } printf("\n"); return 0; }
#include <stdlib.h> #include <stdio.h> #include <time.h> /*用到了time函数,所以要有这个头文件*/ int main( void) { int number[100] = {0}; int i; srand((unsigned) time(NULL)); //设置种子 for(i = 0; i < 100; i++) { number[i] = rand() % 11 + 50; //产生随机数 printf("%d ", number[i]); } printf("\n"); return 0; }