10-数组
2020-12-13 05:04
标签:个数 匹配 bsp 下标 就是 元素 循环 实例 输入 一、数组 数组是一系列相同数据类型的集合。 Int 31 28 31 30 31 30 31 31 30 31 30 31 一个数组里面每一个元素的变量名是相同的,数组下标。数组下标都是从0开始的。 int month[12]; //声明数组 数组的下标是 month[0]-month[11] 数组的存放,都是连续一块内存。 1、数组的初始化 数据类型 数组名[数组的大小]; 声明数组 初始化: a、在声明数组的同时用{}来赋值,用逗号分隔,用分号结束。 int days[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; b、如果声明的时候没有赋值,不能整体赋值。 //错误 //month[12];表示的是数组里面的第13个元素 //month[12] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; //month[12] = days[12]; //month = days; c、赋值到时候要逐个元素进行赋值。 month[0] = 31; month[1] = 28; month[2] = 31; for (int i = 0; i
{ printf("%d\n", month[i]); } d、数组元素小于数组大小的情况,但是一个都没有的情况下就是乱码。 int days[12]= { 31, 28, 31, 30, 31, 30};//初始化 把有点元素赋值,没有的赋值为0;但是,单个赋值除外。 students[1] = 24; for (i = 0; i 从
{
printf("%d\n", students[i]);
}
备注,如果元素多了,编译器会报错。
f、可以省略数组的下标,让元素个数自动匹配数组大小,初始化。
int students[] = { 20, 24, 25, 26, 27, 30, 35, 15, 37 }; //今天的听课人数
元素个数为:sizeof(students) / sizeof(students[0])
1 #include2 3 int main() 4 { 5 6 int i, j; 7 //数组的初始化 8 //int month[12]; //声明数组 数组的下标是 month[0]-month[11] 9 10 //int days[12]= { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };//初始化 11 12 ////给模拟month赋值 13 //for (int i = 0; i 14 //{ 15 // month[i] = i + 1; 16 // printf("%d\n", month[i]); 17 //} 18 19 //错误 20 //month[12];表示的是数组里面的第13个元素 21 //month[12] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; 22 //month[12] = days[12]; 23 //month = days; 24 25 26 //d、数组的元素个数小于数组的大小 27 //int days[12]= { 31, 28, 31, 30, 31, 30 ,31,30,31,30,31,31}; 28 29 //for (i = 0; i //从0开始到11结束的循环 30 //{ 31 // printf("%d\n", days[i]); 32 //} 33 34 35 //f、可以省略数组的下标,让元素个数自动匹配数组大小。 36 //int students[12]; //= { 20, 24, 25, 26, 27, 30, 35, 15, 37 }; //今天的听课人数 37 // 38 //students[1] = 24; 39 40 //for (i = 0; i //从0开始到11结束的循环 41 //{ 42 // printf("%d\n", students[i]); 43 //} 44 45 //在省略下标的情况下打印所有元素 46 /*int students[]= { 20, 24, 25, 26, 27, 30, 35, 15, 37,13,2,46,5,41,56, 47 48,74,8,7,4,6,8,3,7,6,38,746,974,64,68,4,98,74}; 48 49 for (i = 0; i 50 { 51 printf("%d\n", students[i]); 52 }*/ 53 54 int arr[5] = { 0 }; 55 56 for (i = 0; i 5; i++) //从0开始到11结束的循环 57 { 58 printf("%d\n", arr[i]); 59 } 60 61 return 0; 62 }
实例:
1 //打印出一个人的成绩单 计算平均值 2 3 #include4 5 int main() 6 { 7 int i; 8 int avg=0,total=0; //声明两个 平均分 总分 9 int score[] = { 85, 95, 76, 77, 68, 97 }; //各科成绩 10 11 12 printf("\t语文\t数学\t英语\t物理\t化学\t生物\t总分\t平均分\n"); 13 14 for (i = 0; i sizeof(score) / sizeof(score[0]); i++) 15 { 16 printf("\t%d", score[i]); //打印各个分数 17 total = total + score[i]; //计算总分 18 } 19 20 avg = total / (sizeof(score) / sizeof(score[0])); //计算平均分 21 printf("\t%d\t%d\n", total, avg); //打印总分和平均分 22 23 return 0; 24 }
二、二维数组
二维数组:数组元素是双下标变量的数组。
数据类型 数组名[行][列];
仍然是连续存放的。
1、初始化
A、一般形式
int arr[3][3] = {
{ 18, 20, 26 },
{ 35, 10, 23 },
{ 24, 32, 58 } };
B、省去里面的{}
int arr1[3][3] = { 18, 20, 26,
35, 10, 23,
24, 32, 58 };
C、//只能省略行下标,不能省略列下标
int arr2[][3] = { 18, 20, 26,
35, 10, 23,
24, 32, 58 };
D、int arr2[][3] = { 0 }; //arr[0][0]=0; 整个数组都是0
2、赋值
大写加粗的注意:数组的大小为n 数组下标就是从 0 ----- n-1
1 int n; 2 3 for (i = 0; i 2;i++) 4 { 5 for (j = 0; j 4;j++) 6 { 7 for (n = 0; n 6; n++) 8 { 9 printf("0\t"); 10 } 11 } 12 }
实例::
1 #include2 3 int main() 4 { 5 //二维数组的初始化 6 //int arr[3][3] = { 7 // { 18, 20, 26 }, 8 // { 35, 10, 23 }, 9 // { 24, 32, 58 } }; 10 11 //int arr1[3][3] = { 18, 20, 26, 12 // 35, 10, 23, 13 // 24, 32, 58 }; 14 15 16 //int arr2[][3] = { 18, 20, 26, //只能省略行下标,不能省略列下标 17 // 35, 10, 23, 18 // 24, 32, 58 }; 19 20 //int arr3[][3] = { 0 }; //arr[0][0]=0; 整个数组都是0 21 22 //二维数组的赋值 23 int i, j; 24 int max, min; 25 int Arr[2][3]; 26 int Arr1[3][2]; 27 28 //用两个嵌套for赋值 用键盘 29 printf("输入数字:\n"); 30 31 for (i = 0; i 2; i++) 32 { 33 for (j = 0; j 3; j++) 34 { 35 scanf("%d", &Arr[i][j]); //getchar 36 } 37 } 38 39 40 //打印 41 for (i = 0; i 2; i++) 42 { 43 for (j = 0; j 3; j++) 44 { 45 printf("Arr[%d][%d]=%d\t", i, j, Arr[i][j]); //getchar 46 } 47 printf("\n"); 48 } 49 50 printf("\n\n"); 51 52 //求最大值 53 max = Arr[0][0]; //Arr[0][0]数组的第一个元素 54 for (i = 0; i 2; i++) 55 { 56 for (j = 0; j 3; j++) 57 { 58 if (max Arr[i][j]) 59 { 60 max = Arr[i][j]; 61 } 62 } 63 } 64 65 printf("max=%d\n", max); 66 printf("\n\n"); 67 68 //把输入的数组给他赋给另外一个数组 69 for (i = 0; i 2; i++) 70 { 71 for (j = 0; j 3; j++) 72 { 73 Arr1[j][i] = Arr[i][j]; 74 } 75 } 76 77 for (i = 0; i 3; i++) 78 { 79 for (j = 0; j 2; j++) 80 { 81 printf("Arr1[%d][%d]=%d\t", i, j, Arr1[i][j]); 82 } 83 printf("\n"); 84 } 85 86 return 0; 87 }
10-数组
标签:个数 匹配 bsp 下标 就是 元素 循环 实例 输入
原文地址:https://www.cnblogs.com/tiantiancode/p/11130190.html