C语言数组练习

来源:互联网 发布:淘宝网卖家开店流程 编辑:程序博客网 时间:2024/04/29 03:24

今天开始讲二维数组,没有什么说的,只是都是新知识,需要多加练习。

概念:数组名后面有两个下标的数组被称为二维数组

定义:常量说明符 数组名【常量表达式1】【常量表达式2】= {值1,值2,...};

其中常量表达式1代表的是一维数组的长度,常量表达式2代表的是二维数组的长度



练习1:将一个二维数组的行和列交换,存储到另一个数组中去。

int array1[2][3] = {1,2,3,4,5,6}

int array2[3][2] = {0};

for (int i = 0;i < 2;i++){

for (int j = 0;j < 3;j++){

arrar2[j][i] = array1[i][j];

}

}

for (int i = 0;i < 2;i++){
for(int j = 0;j < 3;j++){

printf("array1[%d][%d] = %d",i ,j,array1[i][j]);

}

printf("\n");

for(int i = 0;i < 3;i++){

for(int j = 0;j < 2;j++){

printf("array2[%d][%d] = %d "i,j,array2[i][j]);

}

printf("\n");

}




练习2.有一个3行4列的二维数组,要求编程找出最大元素,并输出所在的行和列

int max = 0;

int array3[3][4] = {12,24,3,4,24,13,15,32,21,11,22,17};

for(int i = 0;i < 3;i++){

for(int j = 0;j < 4;j++){

max  = max > array3[i][j] ? max : array3[i][j];

}

}

for(int i = 0;i < 3;i++){

for(int j = 0;j < 4;j++){

if(max == array3[i][j]){

printf("mx = %d在第%d行第%d列\n",max,i+1,j+1);

}

}

}



二维数组在定义的时候如果元素未一一列出,未赋值的元素自动初始化为0.


字符串数组:

概念:用来存放字符串(以‘\0’结尾的字符数组被称为字符串)的数组

定义:

         char 数组名【常量表达式1】,【常量表达式2】 = {值1,值2,值3,...};

注意事项:字符数组实际上是字符型二维数组

                  每个字符串长度不超过二维长度 -1(字符串需要存放‘\0’)

                   字符串访问:数组名+一维下标





练习3.创建一个字符串数组(内容是你一圈人的姓名),输出最长字符串的长度

char string2[4][5] = {"Yanweimin","Wangxuejuan","Guofeifei","Qinjunzjen"};

unsinged long max = 0;

for(int i = 0;i < 4;i++){

max = max > strlen(string2[i] ? max : strlen(string2[i]));

}

pringtf("最大的字符串长度 = %lu\n",max);


收获:1.求字符串长度的结果数据类型是unsinged long (无符号整型数)

            2.无论是赋值还是两个数作比较,都需要双方数据类型一致

            3.字符串访问:数组名+ 一维下标





练习4.创建一个 字符串数组(内容是你一圈人的姓名),对字符串(英文)从小到大排序

char string3[4][15] = {"Yanweimin","Wangxuejuan","Guofeifei","Qinjunzhen"};

for(int i = 0;i < 4;i++){

pringtf("string3[%d] = %s\n",i,string3[i]);

}

char string[15] = {0};

for(int i = 0;i < 4 - 1;i++){

for(int j = 0;j < 4 - 1 - i;j++){

if(strcmp(string3[j],string3[j+1] ) > 0){

strcpy(string,string3[j]);

strcpy(string3[j],string[j+1]);

srecpy(string3[j+1],string);

}

}

}

for(int i = 0;i < 4;i++){

printf("string3[%d] = %s\n",i,string3[i]);

}







































































0 0
原创粉丝点击