day07笔记
1)rand 生成随机数
1)rand()随机函数
头文件:
#include <stdlib.h>
函数原型:
int rand(void);
函数功能:
生成大于等于0的随机整数
参数:
void
返回值:
生成的随机整数
2)srand 更新随机数种子(srand()函数用于给rand()函数设定种子)
头文件:
#include <stdlib.h>
#include <time.h>
//使用 <time.h> 头文件中的 time() 函数即可得到当前的时间(精确到秒)
函数原型:
void srand(unsigned int seed);
//它需要一个 unsigned int 类型的参数。在实际开发中,我们可以用时间作为参数,只要每次播种的时间不同,那么生成的种子就不同,最终的随机数也就不同。
函数功能:
播种随机数种子
参数:
seed
返回值:
void
eg:
int main()
{
strand(time(NUll));//生成随机数种子,并随系统时间进行更新time(NULL)
int a = rand()%100;//rand生成随机数,并设置随机数的范围0~99
printf("%d\n",a);
return 0;
}
七、数组
存储大量同类型的数据
1.一维数组
1)数组的定义
<存储类型><数据类型>数组名[数组元素个数]
存储类型:auto register static extern
数据类型:char short int long float double 自定义类型
数组名:标识符,满足命名规则
[]:在定义数组时,[]中是数组大小
元素个数:该数组中最大存储的元素个数
int arr [10];//定义了能够存储10个整形数据的整型数组
sizeof(arr);//sizeof求数组的空间大小 40字节
2)数组的初始化
1.完全初始化
int arr[5] = {1,2,3,4,5};
2.非完全初始化
//非完全初始化,未初始化的元素值为0
int arr[5] = {1,2,3};//按照顺序从第一个元素开始赋值
int arr[5] = {[1] = 2,[3] = 4};//对第2个和第4个元素赋值
int arr[5] = {0};
int arr[] = {1,2,3};
3)数组元素的访问
数组名[下标]:
下标:0 ~ 最大元素个数-1
int arr[10];
//访问数组中的最后一个元素,arr[9]
eg:打印数组的元素(循环)
int arr[5]={1,2,3,4,5};
int len = sizeof(arr)/sizeof(arr[0]);//求数组元素个数
int i = 0;
while(i<len){
printf("%d\n",arr[i]);
i++;}
4)可变数组
eg1:键盘上输入数组存储的元素个数
int main(int argc, char *argv[])
{
int n = 0;
scanf("%d",&n);
int arr[n];
for(int i = 0; i < n; i++){
arr[i] = i + 1;
}
for(int i = 0; i< n; i++){
printf("%d ",arr[i]);
}
return 0;
}
eg2:从键盘上输入和打印数组元素
int main(int argc, char *argv[])
{
int n;
int arr[n];
scanf("%d",&n);
for(int i = 0; i < n; i++){
scanf("%d",&arr[i]);
}
for(int i = 0; i< n; i++){
printf("%d ",arr[i]);
}
return 0;
}
eg3:求数组元素最大值以及下标
int main(int argc, char *argv[])
{
int n;
int arr[n];
int max = 0;
int index;
scanf("%d",&n);
for(int i = 0; i < n; i++){
scanf("%d",&arr[i]);
}
for(int i = 0; i < n; i++){
if(max < arr[i]){
max = arr[i];
index = i;
}
}
printf("最大值为:%d,下标为:%d\n",max,index);
return 0;
}
2.二维数组
3.字符数组
char str[6] = {'h','e','l','l','o'};
char str[6] = {"hello"};
char str[6] = "hello";
eg:
int main(int argc, char *argv[])
{
char str[5] = "hello";
char str1[5] = "world";
char str2[6] = "hello";
printf("str = %s\n",str);
return 0;
}
结果:helloworldhello
str数组没有预留'\0'的空间