C语言05 -- 二维数组

来源:互联网 发布:二维数组回形遍历 编辑:程序博客网 时间:2024/05/29 08:26

//
// main.m
// C5—二维数组与函数
//
// Created by dllo on 15/7/6.
// Copyright (c) 2015年 Gaozi. All rights reserved.
//

import

// 二维数组

int arr[5] = {};
char str[] = {};
char str1[9] = “lal\0lala”;

printf(“%s”,str1); //打印出lal;
printf(“\n”);
// 在一维数组中放变量.
int a = 10;
int arr[a];
char str[a];
scanf(“%s”,&str);
printf(“%s\n”,str);

// 定义一个三行四列的二维数组

int arr[2][4] = {1,2,3,4,5,6,7,8};
// 取第三行第二个数
printf(“%d\n”,arr[2][1]);

//遍历一下二维数组,%2d 加两个空格,打印整齐.
for (int i= 0; i < 2; i++) {
for (int j = 0; j < 4; j++) {
printf(“%-2d “,arr[i][j]);
}
printf(“\n”);
}
int arr1[4][2] = {1,2,3,4,5,6,7,8};
for (int i= 0; i < 4; i++) {
for (int j = 0; j < 2; j++) {
printf(“%-2d “,arr1[i][j]);
}
printf(“\n”);
}

// 定义一个3行4列的数组
int arr[3][4] = {};
// 对数组进行随机赋值 30-70,找最大值和下标.
int max = 0;
int maxindex1 = 0;
int maxindex2 = 0;
for (int i= 0; i< 3; i++) {
for (int j = 0; j < 4; j++) {
arr[i][j] = arc4random() % (70 - 30 +1)+30;
printf(“%-2d “,arr[i][j]);
if (max < arr[i][j]) {
max = arr[i][j];
maxindex1 = i;
maxindex2 = j;
}
}
printf(“\n”);
}printf(“最大值为%d,下标为%d,%d\n在第%d行第%d列\n”,max,maxindex1,maxindex2,maxindex1+1,maxindex2+1);

// 练习

//定义一个二维数组,将将的行列交换放到另一个数组
int arr[2][4] = {1,2,3,4,5,6,7,8};
int arrNew [4][2] = {};
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 4; j++) {
arrNew[j][i] = arr[i][j];
}
}
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 2; j++) {
printf(“%2d “,arrNew[i][j]);
}
printf(“\n”);
}
int arr[6] = {1,2,3,4,5,6};
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3 ; j++) {
printf(“%d”,arr[i * 3 + j]);
}
printf(“\n”);
}
// 3 行 4 列
int arr[12] = {0};
//先对其进行随机数的赋值,范围30-70,打印三行四列.
for (int i= 0; i< 12; i++) {
arr[i] = arc4random() % (70 - 30 + 1) + 30;
printf(“%d “,arr[i]);
}
printf(“\n”);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf(“%d “,arr[i * 4 + j]);
}
printf(“\n”);
}
// 定义一个二维数组时,可以省略行,不能省略列,即必须要指定每一行有多少个 数.

// 字符串数组

//[]–字符串的个数–3;;;[]–每个字符串最大长度–10.
char strings[3][10] = {“iphone”,”hello”,”lanou3g”};
printf(“%s\n”,strings[0]);
for (int i = 0; i < 3; i++) {
printf(“%s\n”,strings[i]);
}
printf(“\n”);
// hello -> goodbye
strcpy(strings[1], “goodbye”);
printf(“%s\n”,strings[1]);
printf(“\n”);

// 找到iphone中的p
// printf(“%c\n”,strings[0][1]);

// 字符串数组:一个维度,可以找到字符串,两个维度可以找到字符串里对应的字符.

char strings[3][20] = {“ciaoggdi”,”aiuxinqi”,”ahoushengmin”};
int len = 0;
int maxlen = 0;
int count = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j <= strlen(strings[i]); j++) {
if (maxlen < j) {
maxlen = j;
count = i;
}
}
}
printf(“%s\n”,strings[count]);

//按升序排列名字

char strings1[20] = {};
for (int i = 0; i < 3 - 1; i++) {
if (strcmp(strings[i],strings[i+1]) > 0) {
strcpy(strings1, strings[i]);
strcpy(strings[i], strings[i+1]);
strcpy(strings[i+1], strings1);
}
}
for (int i = 0; i < 3 ; i++) {
printf(“%s “,strings[i]);
}printf(“\n”);

int arr[6] = {9,7,8,5,4,1};
for (int i = 0; i < 6 -1; i++) {
for (int j = 0; j < 6 - i - 1; j++) {
if (arr[j]>arr[j+1]) {
int temp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}for (int i = 0; i < 6; i++) {
printf(“%d”,arr[i]);
}printf(“\n”);

// 三维数组

int arr[2][3][4] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};
// 遍历一次三维数组.
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
for (int k = 0; k < 4; k++) {
printf(“%-2d “,arr[i][j][k]);
}
printf(“\n”);
}
printf(“\n”);
}

return 0;

}

0 0
原创粉丝点击