10-数组

2020-12-13 05:04

阅读:398

标签:个数   匹配   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 从

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  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 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 #include  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  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-数组

标签:个数   匹配   bsp   下标   就是   元素   循环   实例   输入   

原文地址:https://www.cnblogs.com/tiantiancode/p/11130190.html


评论


亲,登录后才可以留言!