数组定义及其要用
数据类型相同;有序存储(内存指针操作);
特点
数组大小必须是常量,不能是变量;
下标从0-length-1;
一维数组的定义
int age[6];
在计算机内存中顺序存储;
int age[6] ={1,2,3,4,5,6};
小知识点:static int age[6]; auto int age[6];
二维数组—类比列表;
三维数组—类比页表;或者类比 长方体
// 将二维数组存放的3*3矩阵,转置存放;
// 二维数组存放的矩阵进行转置
#include "stdio.h"
#define N 3
void main(){
int array[N][N]={{1,2,3},{4,5,6},{7,8,9}};
//打印矩阵
int brray[N][N];
int i,j;
printf("the previous array is: \n");
for(i=0;i<N;i++){
for(j=0;j<N;j++){
printf(" %-3d ",array[i][j]);
brray[j][i]=array[i][j];
}
printf("\n");
}
// 打印转置后的矩阵
printf("the next array is: \n");
for(i=0;i<N;i++){
for(j=0;j<N;j++){
printf(" %-3d ",brray[i][j]);
}
printf("\n");
}
}
二维数组的定义及使用
int a[3][2] ={{1,2},{3,4},{5,6}};
// 求3*4矩阵中最小值元素
// 求出矩阵中元素最小的值,并给出对应的行和列
#include"stdio.h"
void main(){
int array[3][4]={{1,2,3,4},{-1,-4,-2,-5},{-3,4,2,7}};
int i,j;
int min = array[0][0];
int row=0,col=0;
// 遍历数组中的每一个元素
for(i=0;i<3;i++){
for(j=0;j<4;j++){
if(min>array[i][j]){
min=array[i][j];
row=i;
col=j;
}
}
}
// 打印输出
printf("the Min is %d\n",min);
printf("the row is %d,and the col is %d \n",row,col);
}
// 寻求鞍点; 所在行中最小,所在列中最大;
// 求数组中的鞍点:即在数组中所在行为最小值,且在该列中为最大值
#include "stdio.h"
void main(){
int i,j;
int k; // 作为遍历该列的每一行
int max,min;
int row,col;
int flag=0;
int array[4][5]={{5,9,1,0,2},{8,9,3,2,0},{8,9,7,6,9},{9,3,5,4,2}};
// 先寻找每行的最大值然后在该列进行比较是否为最小值
for(i=0;i<4;i++){
max=array[i][0]; // 先设每行为最大值
for(j=0;j<5;j++){
if(array[i][j]>=max){
row =i;
col =j;
}
}
min=array[row][col];
for(k=0;k<4;k++){
if(array[k][col]<min){
break;
}
}
if(k==4){
flag=1;
printf("the num is %d ,the row is %d,the col is %d \n",min,row,col);
}
}
if(flag==0){
printf("the num has no dian \n");
}
}
三维数组的定义与应用
// 定义一个三维数组,对每个元素赋值,顺序输出所有元素值
利用三个for嵌套内循环
字符数组与字符串操作
字符数组中每个数组元素只能存放一个ASC 字符值;
最后要至少留一个“\0”表示结束,数组元素足够大;
例如:
char str[]={“THANK YOU”};
常用字符串函数
头文件: #include <string.h>
puts()函数;
char str[]=“THANK YOU”;
puts(str);
gets()函数
char str[10];
puts(str);
strcat()函数:字符串连接函数
char str1[] = “THANK”;
cahr str2[] = “YOU”;
strcat(str1,str2);
还有很多很多字符串函数;用到的时候具体去查;
##字符数组应用案列
// 打印菱形
#include "stdio.h"
#include "string.h"
void mian(){
int i,j,k; // 循环变量使用
char str[]="*****";
char space=' ';
// 控制输出格式
for(i=0;i<strlen(str);i++){
// 控制输出空格
for(j=1;j<=3*i;j++){
printf("%c",space);
}
for(k=0;k<strlen(str);k++){
printf("%3c",str[k]);
}
printf("\n");
}
}
小结
既然选择了,就无怨无悔,风雨无阻,星夜坚持,我相信我能