5月8日 数组

数组

一、数组:具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。

所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。

【数组中元素的索引是从0开始的】

二、一维数组定义方式:

//int[] 变量名 = new int [n];

//n表示开辟多少个空位

1、int  类型

            int [] array =new int[]{1,2,3,4,5};//里面有5个变量,array[0],array[1],array[2],array[3],array[4]

            Console.WriteLine(array[0]);//打印出来的是1

或者       int [] array =new int[]{1,2,3,4,5};

            array[2] = 6;//在这里重新给3赋值,3的位置是array[2],那么打印的是重新赋值后的数,即6

            Console.WriteLine(array[2]);

2、string  类型

           string[] array1 = new string[5];

           //array1[0]="1";//可以给每个变量定义字符串

          //array1[1]="2";

           //array1[2]="3";

          //array1[3]="4";

           //array1[4] ="5";

            for (int i = 0; i < array1.Length; i++)

            {

                Console.Write("请输入第" + (i + 1) + "个名字:");

                array1[i] = Console.ReadLine();

            }

三、练习:

1//从控制台输入10个人的年龄放入数组,

            //将十个人的年龄求总和

            int[] name = new int[10];

            int sum = 0;

            for (int i = 0; i < name.Length; i++)

            {

                Console.Write("请输入第" + (i + 1) + "个年龄:");

                name[i] = int.Parse(Console.ReadLine());

                sum += name[i];

            }

            Console.WriteLine(sum);

2//排序   冒泡排序

int[] name = new int[10];

for (int i = 0; i < 10; i++)

            {

                for (int j = i; j < 9; j++)

                {

                    if (name[i] < name[j + 1])

                    {//定义中间变量去调换两个值

                        int zhong = name[i];

                        name[i] = name[j + 1];

                        name[j + 1] = zhong;

                    }

                }

            }

            for (int i = 0; i < 10; i++)

            {

                Console.WriteLine(name[i]);

            }

3//生成十个不重复的数放入数组并打印出来

            int[] suiji = new int[10];

            Random ran = new Random();

            for (int i = 0; i < 10; i++)

            {

                bool b = true;

                int a = ran.Next(11);

                for (int j = 0; j <= i; j++)

                {

                    if (a == suiji[j])

                    {

                        b = false;

                        i--;

                    }

                }

                if (b)

                {

                    suiji[i] = a;

                }

            }

4         //遍历数组

            foreach (int aa in suiji)

            {

                Console.WriteLine(aa);

            }

5//输入班级人数,根据人数,

            //挨个输入成绩,求平均分,求最高分,最低分

            Console.Write("请输入班级人数:");

            int renshu = int.Parse(Console.ReadLine());

            double[] fenshu = new double[renshu];

            double sum = 0;

            for (int i = 0; i <= renshu; i++)

            {

                Console.Write("请输入第" + (i + 1) + "个分数:");

                fenshu[i] = double.Parse(Console.ReadLine());

                sum += fenshu[i];

            }

            double pj = sum / renshu;

            Console.WriteLine(pj);

            Console.ReadLine();

 

四、二维数组定义方式:

 //int [,] array =new int [a,b];

            //a表示有几个一维数组

            //b表示每个一维数组中有几个元素

例:

(1int[,] array = new int[3, 4]{

            {2,3,4,5},

            {3,4,5,6},

            {5,6,7,8}};

            Console.WriteLine(array[1, 1]);

 

            for (int i = 0; i < 3; i++)

            {

                for (int j = 0; j < 4; j++)

                {

                    //Console.WriteLine(array[i,j]);

                    array[i, j] = int.Parse(Console.ReadLine());

                }

            }

五、练习:

1、//打印一个王字

            string [,] wang =new string[,]

               {

                    {"  ","■","■","■","■","■","  "},

                    {"  ","  ","  ","■","  ","  ","  "},

                    {"  ","  ","  ","■","  ","  ","  "},

                    {"  ","  ","■","■","■","  ","  "},

                    {"  ","  ","  ","■","  ","  ","  "},

                    {"  ","  ","  ","■","  ","  ","  "},

                    {"■","■","■","■","■","■","■"}

               };

            for (int i = 0; i < 7; i++)

            {

                for (int j = 0; j < 7; j++)

                {

                    Console.Write(wang[i,j]);

                }

                Console.WriteLine();

            }

2、//输入班级人数,根据人数创建数组

            //将每一个人的语文,数学,英语成绩放进去

            //计算出每个人的平均分

            Console.Write("请输入班级人数:");

            int renshu = int.Parse(Console.ReadLine());

            double[,] fenshu = new double[renshu, 3];

            double sum = 0;

            for (int i = 0; i < renshu; i++)

            {

                for (int j = 0; j < 3; j++)

                {

                    Console.WriteLine("请输入第" + (j + 1) + "个分数:");

                    fenshu[i, j] = double.Parse(Console.ReadLine());

                    sum += fenshu[i, j];

                }

                double pj = sum / renshu;

                Console.WriteLine("平均分数为:" + pj);

                Console.WriteLine();

            }

            Console.ReadLine();

六、多维数组

数组可以具有多个维度。例如:

int[,,] myArray = new

int[2,4,2]

{

{{1,2},{3,4},{5,6},{7,8}} ,

{{9,10},{11,12},{13,14},{15,16}}

};

//意思是,有2个二维数组,每个二维数组里有4个一维数组,每个一维数组里有2个元素

转载于:https://www.cnblogs.com/juyangchao12/p/5471452.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值