C#语言入门(九):数组

什么是数组?

数组是具有相同数据类型的一组数据的集合。数组中的每一个变量称为数组的元素,数组能够容纳元素的数量称为数组的长度。

一维数组

语法:数组元素类型 [] 数组名字;    例:int[] arry;

初始化:

  • 法一:分别为每一个元素赋值     例:int[] a = new int[3]; a[0] = 1;a[1] = 2;a[2] = 3;
  • 法二:直接给整个数组进行赋值     例:int b[]  = new int { 4, 5, 6 };
  • 法三:省略new关键字    例:int c = { 7, 8, 9 };

二维数组

语法:

  • 法一:数据类型[ , ] 数组名;    例:int[ , ] arry;
  • 法二:数据类型[ ][ ] 数组名;    例:string[ ][ ] arry;

声明:

  • 法一:指定行数和列数      例:int[,] a = new int[2][4];
  • 法二:只指定行数    例:int[][] b = new int[2][];b[0] = new int[2];b[1] = new int[3];//使用这种方法的时候可以为每一行指定不同的列数。(与不规则数组类似)

注意:int[][] a = new int[3][3];这种创建数组的方式是错误的。

初始化:

  • 法一:为单个数组元素赋值    例:int[,] arry = new int[2,2]; arry[0,0] = 0;arry[0,1] = 1;……
  • 法二:为逐行进行初始化    例:int[][] arry = new int[2][];arry[0] = new int[]{0,1};arry[1] = new int[]{1,0};
  • 法三:直接为整个二维数组赋值    例:int[,] = new int[2,2]{ {0,1}, {1,0} };或int[,] = new int[,]{ {0,1}, {1,0} };                           或int arry = { {0,1},{1,0} };

二维数组的使用

题目:将二维数组中的行数据和列数据调换位置。

答案:

            int[,] arry = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
            for (int i = 0; i < 3; i++)
            {
               for (int j = 0; j < 3; j++)
                {
                    Console.Write(arry[i, j]+"  ");
                }
                Console.WriteLine("\n");
            }
            int temp;
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < i; j++)
                {
                    temp = arry[i, j];
                    arry[i, j] = arry[j, i];
                    arry[j, i] = temp;
                }
            }
            Console.WriteLine("new data: ");
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(arry[i, j] + "  ");
                }
                Console.WriteLine("\n");
            }


数组的基本操作

  • 一维数组的输入与输出
            int[] arry = new int[100];
            for (int i = 0; i < 100; i++)
            {
                arry[i] = i + 1;
            }
            for (int i = 0; i < arry.Length; i++)
            {
                Console.Write(arry[i] + " ");
            }
  • 二维数组的输入与输出

题目:在控制台中输入学生的学号及语文数学英语成绩,然后输出学生的各科成绩,平均成绩和总成绩。

答案:

            Console.WriteLine("请输入总人数:");
            int count = Convert.ToInt32(Console.ReadLine());
           
            int[,] record = new int[count,4];
            for (int i = 0; i < count; i++)
            {
                Console.Write("请输入学号: ", i+1);
                record[i, 0] = Convert.ToInt32(Console.ReadLine());
                Console.Write("请输入语文成绩: ");
                record[i, 1] = Convert.ToInt32(Console.ReadLine());
                Console.Write("请输入数学成绩: ");
                record[i, 2] = Convert.ToInt32(Console.ReadLine());
                Console.Write("请输入英语成绩: ");
                record[i, 3] = Convert.ToInt32(Console.ReadLine());
            }
            Console.WriteLine("学号\t语文\t数学\t英语\t总分\t平均");
            for (int i = 0; i < count; i++)
            {
                int sum = 0, ave = 0;
                for (int j = 0; j < 4; j++)
                {
                    Console.Write(record[i, j] + "\t");
                    if (j > 0)
                    {
                        sum += record[i,j];
                    }
                }
                ave = sum / 3;
                Console.Write(sum + "\t" + string.Format("{0:F2}", ave) + "\n");
            }

使用foreach语句遍历数组

语法:foreach(【类型】【变量名】in 【集合】){ 语句 }

说明:【集合】必须有一个从该集合的元素类型到迭代变量的类型的显示转换。

题目:使用字符串数组存储进销存管理系统的主要功能模块,然后使用foreach语句遍历并输出。

答案:

            string[] names = { "进货管理", "销售管理", "库存管理", "系统设置", "常用工具" };
            foreach (string str in names)
            {
                Console.WriteLine(str);
            }

对数组进行排序

方法:使用Array类中的sort方法可以对数组元素进行顺序排序,reverse可以对数组元素逆序。

例:

            int[] arry = { 3, 4, 1, 7, 5, 6, 9, 8, 2, 0 };
            Array.Sort(arry);
            foreach (int i in arry)
            {
                Console.WriteLine(i);
            }

数组的排序方法

  • 冒泡排序
            int[] arry = { 3, 4, 1, 7, 5, 6, 9, 8, 2, 0 };
            for (int i = 0; i < arry.Length - 1; i++)
            {
                for (int j = i + 1; j < arry.Length; j++)
                {
                    if (arry[i] > arry[j])
                    {
                        int temp = arry[i];
                        arry[i] = arry[j];
                        arry[j] = temp;
                    }
                }
            }
            for (int i = 0; i < arry.Length; i++)
            {
                Console.Write(arry[i]+" ");
            }
  • 选择排序
            int[] arry = { 3, 4, 1, 7, 5, 6, 9, 8, 2, 0 };
            int min;
            for (int i = 0; i < arry.Length - 1; i++)
            {
                min = i;
                for (int j = i + 1; j < arry.Length; j++)
                {
                    if (arry[j] < arry[min])
                    {
                        min = j;
                    }
                }
                int temp = arry[min];
                arry[min] = arry[i];
                arry[i] = temp;
            }
            for (int i = 0; i < arry.Length; i++)
            {
                Console.Write(arry[i] + " ");
            }

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值