//
// main.m
// C5_二维数组
//
// Created by dllo on 15/7/6.
// Copyright (c) 2015年 Clare. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc,const char * argv[]) {
// 二维数组
// int arr[5] = {1,2,3,4,5};
// char stuName[20] = "zhan\0san";
// printf("%s\n",stuName);
// int arr[5] = {0};
// int a = 10;
// scanf("%d",&a);
// int arr1[a];
// // 定义一个三行四列的二维数组
// int arr[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
// // 打印第三行第二个数
// printf("%d\n", arr[2][1]);
// arr [2][1] = 20;
// printf("%d\n",arr[2][1]);
// // 遍历一下这个二维数组
// for (int i = 0;i < 3 ; i++) {
// for (int j = 0; j < 4; j++) {
// printf("%2d ",arr[i][j]); // 2 的作用是加上空格
// }
// printf("\n");
// }
// // 定义一个3行4列的数组
// int arr[3][4] = {0};
// // 对数组进行随机数的赋值,范围30 -70
// // 找出最大值和最大值所对应的下标
// // 保存最大值的变量
// int max = 0;
// // x表示行,y表示列的下标
// int x = 0, y = 0;
// for (int i = 0; i < 3; i++) {
// for (int j = 0; j < 4; j++) {
// arr [i][j] = arc4random() % ( 70 - 30 + 1) + 30;
// printf("%d ",arr[i][j]);
// // 找最大值
// if (max < arr[i][j]){
// max = arr[i][j];
// x = i;
// y = j;
// }
// }
// printf("\n");
// }
//
// for (int i = 0; i < 3; i++) {
// for (int j = 0; j < 4; j++) {
// printf("%d ",arr[i][j]);
// }printf("\n");
// }
// // 整个的for循环外做打印
// printf("max = %d ,位置在%d, %d\n", max, x, y);
// // 练习1定义二维数组,对它进行行列交换
// int arr[2][4] = { 1, 2, 3, 4, 5, 6, 7, 8};
// int arrNew[4][2] = {0};
// // 遍历arr对arrNew进行赋值
// 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("%d ",arrNew[i][j]);
// }
// printf("\n");
// }
// // 用一个一维数组,打印出二维数组的样式
// int arr[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9};
// for (int i = 0; i < 3; i++) {
// for (int j = 0; j < 3; j++) {
// printf("%d ",arr[i * 3 + j]);
// }
// printf("\n");
// }
//
// // 3行4列
// int arr[12] = {0};
// // 先对arr进行随机数的赋值,范围30 -70
// for (int i = 0; i < 12; i++) {
// arr[i] = arc4random() % ( 70 - 30 + 1) +30;
// printf("%d ",arr[i]);
// }
// printf("\n");
// // 然后打印3行4列(几列就用i*几几列再加上j就行,i*后面的数为列的数)
// for (int i = 0; i < 3; i++) {
// for (int j = 0; j < 4; j++) {
// printf("%d ", arr[i * 4 + j]);
// }
// printf("\n");
// }
//
// // 定义一个二维数组的时候,可以省略行,但是不能省略列
//
//
// // 字符串数组
// // 第一个[]写字符串的个数
// // 第二个[]定义每个字符串的最大长度
// char strings[3][10] = { "iPhone", "Android", "Win8"};
// printf("%s\n", strings[0]);
//
// // 用for循环对字符串每一个字符进行遍历
// for (int i = 0; i < 3; i++) {
// printf("%s\n", strings[i]);
// }
//
// // Android -> xiaomi
//
// strcpy(strings[1], "xiaomi");
// printf("%s \n", strings[1]);
//
strlen(str); // 字符串的长度肉眼可见
sizeof(str); // 还有一个结束符所占位置,为肉眼可见再加1
//
char str[20] = "1111";
char str1[20] = "";
strcpy(str1, str);
strcat(<#char *#>, <#const char *#>);
strcmp(<#const char *#>, <#const char *#>) // 直到比较出不同,或比较完相同
//
//
// // 找字符串里的字符
// printf("%c\n", strings[0][1] );
// // 字符串数组:一个维度,可以找到字符串,两个维度找到字符串里对应的字符
// // 1 .创建一个字符串数组(内容是你周围一圈人的姓名),输出最长的字符串长度,
//
// char strNam[5][20] = {"gaowenping", "shichuanyang", "fangliguo", "zhujiaqi","caojun"};
// long length = 0;
// int a = 0;
// for (int i = 0; i < 4; i++) {
//
// if (length < strlen(strNam[i])) {
// length = strlen(strNam[i]);
// a = i;
//
// }
// }
// printf("%ld \n",length);
// // 第一个字符串减去第二个字符串大于0为降序小于0 为升序
//多维数组:多一个维度相当于多一个容器,就多一个for循环
int arr[2][4][3] = {1, 2, 3, 4, 5,6, 7, 8, 9, 10,11, 12};
//遍历一下三位数组
for (int i =0; i < 2; i++) {
for (int j =0; j < 4; j++) {
for (int k =0; k < 3; k++) {
printf("%d ",arr[i][j][k]);
}
printf("\n");
}
printf("\n");
}
//多一个维度遍历时对应的多一层for循环
return 0;
}