目录
区别于Java
数组是有序数据的集合
数组的相关运算可以联想一下循环
5.1一维数组
知识点1:一维数组的定义
使用前必须进行定义
一般形式:
类型标识符 数组名[常量表达式];
数组大小不能进行动态定义
计算字符数时要包含字符串结束标志“\0”
知识点2:一维数组的初始化
一般格式:
类型标识符 数组名[常量表达式] = {初始值表};
初始表中数据用逗号隔开。
未初始化位置为0
对数组全部元素赋值才可以不指定数组长度
所给数据个数不能超过数组长度
知识点3:一维数组的引用
不能整体引用,只能通过数组元素进行访问
【下标法】
一般格式:数组名[下标]
下标由0开始计算
【循环访问】
经典例题:
冒泡法排序
选择法排序
插入法排序
知识点4:随机数生成函数
标准库函数:rand()、srand()
rand()用来随机生成0~RAND_MAX之间的一个无符号整数
RAND_MAX是头文件stdlib.h中定义的符号常量
多次运用rand()生成随机数是生成的伪随机数
srand()函数可以为rand()提供不同的种子,防止伪随机数的生成
定义在time.h中
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int i;
srand((unsigned)time(0));
for(i=0;i<10;i++)
printf("%6d",rand());
}
一定范围内的随机数:
eg:100以内的随机数
rand()%100
或
100*rand()/(double)RAND_MAX
eg:0~1内
rand()/(double)RAND_MAX
或
rand()/32767.0
5.2二维数组
知识点1:二维数组
定义格式:
类型标识符 数组名[常量表达式1][常量表达式2]
常量表达式1:表示第一堆下标长度
简记法:行列排布
矩阵输出时运用循环:【内输外控】
由内层到外层,由内层输入到外层下一个如此这般循环往复
提示语句 puts(“”);
知识点2:二维数组的初始化
一般格式:
类型表达式 数组名 [常量表达式1][常量表达式2] = {(第一堆数据表),(第二堆数据表)};
经典题型:
杨辉三角
5.3字符数组与字符串
知识点1:字符数组的定义与赋值
定义格式如下:
char 数组名[常量表达式] ={初始值表};
为赋值元素依旧为空字符("\0")
知识点2:字符数组的输入与输出
输入输出函数:
printf函数和scanf函数
puts函数和gets函数
1)printf: %s(字符型)不用%c(字符串)
2)puts、gets只能输入字符串
puts(字符数组名) 【没有空格】
gets(字符数组名) 【可以有空格】
5.4字符串处理函数
调用字符串处理函数时,要使用预处理命令#include<string.h>
简单来说就是调用前要放入程序中
知识点1:几种常用的字符串处理函数
1)strcmp 字符串比较函数
调用格式:strcmp(字符串1,字符串2)
基础:ASCII码顺序比较
返回值:整数
返回可能性:
若1>2,返回正整数;
若1=2,返回0;
若1<2,返回负整数。
1、2既可以是字符串常量也可以是字符数组名。
2)strcpy字符串复制函数
调用格式:strcpy(字符数组名,字符串)
字符数组的长度大于或等于字符串的长度
3)strcat字符串连接函数
调用格式:strcat(字符数组名1,字符串2)
2接1后,1必须要足够大
4)strlen字符串长度函数
调用格式:strlen(字符串)
计算实际长度,不包含结束标志“\0”