数组的概念和定义
当程序中需要批量存储数据时,可以使用数组,定义数组就是一次定义许多变量。例如:如果程序中要存储100个整数,可以定义一个100个元素的整型数组。
数组的定义
类型 数组名[元素个数];
例如: int a[10];
一次定义了10个整型变量a[0]、a[1]......a[9]
引用数组元素
数组名[整型表达式]
例如:b=a[10+2]; b=a[b*2+1]; b=a[a[0]+a[1]+1];
数组元素的使用与变量的使用没区别。
数组初始化
定义数组时给数组元素赋值。
int a[10]={1,2,3,4,5,6,7,8,9,10};
int b[]={10,20,30,40};
课堂练习
输入一个月份,输出该月的天数。
数组的遍历
依次访问数组的每一个元素。
int a[10],i;
for(i=0;i<10;i++) a[i]=i*10;
课堂练习
1、输入10个整数存于数组,然后倒过来输出。2、定义一个数组,初始化十个整数,找出其中最大者
3、输入十个整数,从小到大排序输出。
多维数组
多维数组的定义
int a[3][4];
int b[3][4][5];
多维数组的初始化
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int b[3][4][5]={
{{12,23,43,23,34},{56,34,34,78,34},{213,34,43,65,76},{45,3,45,5}},
{{0},{0},{0},{0}},
{{0},{0},{0},{0}}
};
多维数组元素的引用
a[0][1]=10;
b[1][2][1]=100;
多维数组的遍历
遍历二维数组需要两层循环嵌套,三维数组需要三层循环,以此类推。
课堂练习
1、模拟扫雷,初始化二维数组,随机布置地雷,用程序求出地雷周边的数字。
2、通过定义数组初始化,输出各种俄罗斯方块图案。
字符型数组
字符型数组初始化
char s[]="hello";
char str[][10]={"one","two","three"};
其中s有6个元素,s[5]的值为'\0',也就是整数0。
字符型数组的输入输出
printf("%s",s);
scanf("%s",s);//数组名就是数组的首地址,也就是第一个元素的地址,所以不需要使用求地址符&。
printf("%s",str[0]);
scanf("%s",str[0]); //二维数组只写一个下表,代表当前行的首地址。
课堂练习
1、输入字符串,将其中的字母统一编程大写,再输出。
2、输入出生年份,输出生肖。
3、已有5个学生姓名,存入字符型二维数组,编程序依次输入每个学生的语数外成绩存入整型二维数组,最后报表输出。
字符串处理函数
C语言提供了许多字符串处理函数,使用之前要在头部包含 string.h头文件。
输出 puts
格式:puts(字符串地址);
输入 gets
格式:gets(字符串地址);字符串连接 strcat
格式:strcat(字符串1,字符串2);
把字符串2复制到字符串1的末尾。
字符串复制 strcpy
格式:strcpy(字符串1,字符串2);
把字符串2复制到字符串1中
字符串比较 strcmp
格式:strcmp(字符串1,字符串2);
逐个按顺序比较字符串1和字符串2中的字符,相等返回0,大于返回整数,小于返回负数。
求字符串长度 strlen
格式:strlen(字符串地址);