10-数组

Posted tiantiancode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10-数组相关的知识,希望对你有一定的参考价值。

一、数组

数组是一系列相同数据类型的集合。

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 < 12; i++)

  printf("%d\\n", month[i]);

 

d、数组元素小于数组大小的情况,但是一个都没有的情况下就是乱码。

int days[12]= 31, 28, 31, 30, 31, 30;//初始化

把有点元素赋值,没有的赋值为0;但是,单个赋值除外。

students[1] = 24;

for (i = 0; i < 12; i++) //0开始到11结束的循环

  printf("%d\\n", students[i]);

备注,如果元素多了,编译器会报错。

f、可以省略数组的下标,让元素个数自动匹配数组大小,初始化。

int students[] = 20, 24, 25, 26, 27, 30, 35, 15, 37 ; //今天的听课人数

 

元素个数为:sizeof(students) / sizeof(students[0])

 技术图片

 1 #include <stdio.h>
 2 
 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 < 12; 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 < 12; 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 < 12; 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 < sizeof(students) / sizeof(students[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 #include <stdio.h>
 4 
 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 ;

Dint 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 #include <stdio.h>
 2 
 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-数组的主要内容,如果未能解决你的问题,请参考以下文章

c++怎么用三维数组

10.数组一

C语言数组从键盘输入10个整数存入数组,找出其中最大和最小值,并输出。

第一阶段 10数组

指针数组和数组指针

一维数组和二维数组