万金流
以码会友。 吾Q:578751655。 水平有限,轻喷,谢!

数组的实质:批发变量。

引例:有6个数,1,3,5,2,4,6。统计它们的和、平均数。

单个指定变量a,b,c....很繁琐,希望出现一组变量(比如a),各个数依次放在a1,a2,a3....a6中。


 

声明与初始化,类比于变量:

声明 初始化 含义  注意事项
变量的声明:int a; 变量的初始化:a=6; 有个变量a,值为6 -
数组的声明:int[] a; 数组的初始化:a=new int[6]; 有一堆变量,用a表示,一共有6个 下标从0开始,到5结束

 数组可以在声明的时候赋初值,系统根据初值的个数,完成初始化,如:

 int[] a={1,3,5,2,4,6};

对于需要赋初值内容不多的一维数组,以下方式也很常见:

int[] a = new int[100];
            a[0] = a[1] = 1;

或者这样,效果也是一样的:

int[] a;
            a= new int[100];
            a[0] = a[1] = 1;

只要通过new申请了存储空间,没有赋初值的数组元素,得到的都是该类型的默认值(例如int的默认值是0)


 

数组元素的访问:数组名[下标]

例:

int[] a = { 1, 3, 5, 2, 4, 6 };
            Console.WriteLine(a[0]);
            Console.WriteLine(a[1]);
            Console.WriteLine(a[2]);
            Console.WriteLine(a[3]);
            Console.WriteLine(a[4]);
            Console.WriteLine(a[5]);

单个数组元素,可以当做变量来使用:

int[] a = { 1, 3, 5, 2, 4, 6 };
            a[2] = (a[0] + a[3]) * a[5];
            Console.WriteLine(a[2]);

运行结果是:18。


数组元素的遍历。

  由于1、数组下标表示元素在数组中的位置;2、数组下标是“0~数组长度-1”的连续整数。

  所以,一般利用循环对数组进行遍历及批量操作。

例:打印数组(1,3,5,2,4,6)中所有的数

int[] a = { 1, 3, 5, 2, 4, 6 };
            for (int i = 0; i < 6; i++)
            {
                Console.WriteLine(a[i]);
            }

通常,我们用数组名.Length表示数组的长度。上面的程序,更通用的写法就是:

int[] a = { 1, 3, 5, 2, 4, 6 };
            for (int i = 0; i < a.Length; i++)
            {
                Console.WriteLine(a[i]);
            }

数组小练习:

  1. 声明一个长度为100的一维整型数组,依次赋值1~100,输出它们。
  2. 把上面数组中的内容反序输出。
  3. 求1,3,5,2,4,6的和与平均数。
  4. 输出100以内的偶数。
  5. 求出2800、2900、2750和3100中的最小值。
  6. 从键盘输入5个学生的成绩,输出开方乘10之后不及格的成绩。
  7. 乞丐领赏。
  8. 计算斐波拉切数列前20项的值(1,1,2,3,5,8,13...)
  9. 对一组数字(1,3,5,2,4,6)进行移位操作(如右移:6,1,3,5,2,4)
  10. 把50插入到{85,63,49,22,10}中的正确位置。
  11. 把{85,63,49,22,10}按从小到大的顺序排序输出。
  12. 对一组数字(1,3,5,2,4,6)进行查、改、增、删。
  13. 求一组数字中的最大值和第二大值。

补充:

foreach

变量和数组的赋值、修改

P136,List


二维数组

基础:意义、声明、申请存储空间、赋初值

基本操作:遍历、长度(总长、各维长度)

练习:

  1. 对0-1矩阵取反
  2. 矩阵转置
  3. 判断象棋棋子的覆盖范围
  4. 打印杨辉三角形
posted on 2020-11-23 14:16  万金流  阅读(956)  评论(0编辑  收藏  举报