一.二维数组
1.定义:数组名后有两个下标的数组
类型 数组名[常量表达式1][常量表达式2] = {值1,值2,、、、、};
常量表达式1代表的是一维的长度,常量表达式2代表的是二维的长度;
2.将一个二维数组的行和列进行交换,存储到另一个数组中去;
核心思想:先定义一个字符数组a,然后再进行一个空字符数组b,用for循环进行循环遍历,然后把a[i][j] 赋值给b[j][i],然后在循环外再用一个for循环输出数组b[j][i].
3.随机产生一个3*4的数组,然后输出其中最大的数和他所在的行和列
(1)先定义好一个数组a[3][4] = {0};,然后定义max = 0,column = 0,row = 0;然后在for循环中遍历随机产生12个随机数,用if语句进行判断if(a[i][j] > max) max = a[i][j],column = i,row = j;然后在for循环外输出max,column,row;
(2)与上法相似,用三目运算符进行判断,result = a[i][j] > max ? a[i][j] : max;max = result;column = i,row = j;然后在for循环外进行对数组遍历,若max = a[i][j],就输出max 所在的行和列;
4.创建一个字符串,内容是你周围一圈的人得名字,输出最长字符串的长度。
核心思想,创建一个字符串b[5][15] = {"字符串1", “字符串2”, “字符串3”,、、、};定义一个变量 unsigned long max = 0;然后进行循环遍历,for (int i = 0;i < 5;i++){unsigned long lenth = strlen(a[i]) ;然后用if语句或者三目运算符进行判断lenth是否等于max,};最后把值赋给max,输出max即可。
5.创建一个字符串数组(内容是你一圈人的姓名),对字符串(英文)进行从小到大排序
cahr str[5][15] = {"字符串1",“字符串2”, “字符串3”, 、、、};
char temp [15] = {0};
for (int i = 0;i < 5;i++){
for (int j = 0;j < 15;j++){
if(strcmp(str[i],str[i + 1]) > 0)
strcpy(temp,str[i]);
strcpy(str[i],str[i + 1]);
strcpy(str[i + 1],temp);
}
}
for (int i = 0;i < 5;i++){
printf("字符串从小到大为:%s\n",str[i]);
}
6.注意事项:
(1)字符串输出为%s;
(2) 求字符串长度的结果数据类型是unsigned long(无符号长整形)
(3)无论是赋值还是两个数作比较,都需要双方类型一致
(4)字符串的访问是:数组名 + 一维下标
(5)字符的访问是:数组名 + 一维下标 + 二维下标