C# 数组

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

    一维数组【相同数据类型】
            第一种定义方式

            int[] shuzu = new int[5];
            for (int i = 0; i < 5; i++)
            {
                shuzu[i] = i + 1;
            }
                //索引从0开始
                //赋值
                //shuzu[0] = 1;
                //shuzu[1] = 2;

                //shuzu[2] = 3;
                //shuzu[3] = 4;
                //shuzu[4] = 5;
                ////shuzu[5] = 6;
                ////shuzu[6] = 7;
                Console.WriteLine(shuzu[4]);

 

            第二种定义方式
 

           int[] shuzu = new int[] { 1,2,3,4,5 };
            Console.WriteLine(shuzu[2]);

 

       二维数组

            int[,] shuzu = new int[3, 4];
            int[,] shuzu = new int[,] {
            {1,2,3,4},
            {5,6,7,8},
            {6,7,8,9}
            };

 

           string[,] shuzu = new string[,] {
            {"  ","","","","","",""},
            {"  ","  ","  ","","","",""},
            {"  ","  ","  ","","","",""},
            {"  ","  ","","","","",""},
            {"  ","  ","  ","","  ","  ",""},
            {"  ","  ","  ","","  ","  ",""},
            {"","","","","","",""}
            };

            for (int i = 0; i < 7; i++)
            {
                for (int j = 0; j < 7; j++)
                {
                    Console.Write(shuzu[i, j]);
                }
                Console.WriteLine();
            }

 

     三维数组

            int[, ,] shuzu = new int[3, 2, 4];
            { 
                {
                    {,,,},
                    {,,,} 
                },
                {
                    {,,,},
                    {,,,}
                },
                {

                    {,,,},
                    {,,,}
                } 
            };

           foreach不仅可以应用于数组,还可以应用于集合

            //foreach遍历数组中各个元素,执行内部语句
            foreach(double d in fen)
            {

                d是数组里面的元素的代表,从第一个元素开始遍历
                Console.WriteLine(d);
            }

 

             object 所有类的基类,可以接受任何数据类型

           foreach (int a in shuzu)//遍历数组
                    //object在不知道是什么数据类型时使用,代替现在int的位置
            {
                Console.WriteLine(a);
            }

            object a = 1;
            object b = "123";
            object c = true;
            object d = 3.14;

 

一维数组练习

            从控制台输入10个人的年龄放入数组,
            将十个人的年龄求总和

            int [] age=new int [10];
            int sum = 0;
            for (int i = 0; i < 10; i++)
            {
                Console.Write("请输入第"+(i+1)+"个人的年龄:");
                age[i] = int.Parse(Console.ReadLine());
                sum += age[i];
            }
            Console.WriteLine(sum);

 

            输入人名放进数组,输出第5个人的姓名

            Console.Write("请输入有几个人:");
            int a = int.Parse(Console.ReadLine());
            string [] name =new string [a];
            for (int i = 0; i < a;i++ )
            {
                Console.Write("请输入第" + (i + 1) + "个人的姓名:");
                name[i] = Console.ReadLine();
            }
            Console.WriteLine(name[4]);

 

            输入班级人数,根据人数,
            挨个输入成绩,求平均分

            Console.Write("请输入班级人数:");
            int a = int.Parse(Console.ReadLine());
            double [] fen = new double [a];
            double sum = 0;
            for (int i = 0; i < a;i++ )
            {
                Console.Write("请输入第"+(i+1)+"个人的分数:");
                fen[i] = double.Parse(Console.ReadLine());
                sum += fen[i];
            }
            Console.WriteLine("班级平均分为:"+sum/a);

 

            冒泡排序   从大到小排列

            int[] shuzu = new int[] { 3,1,8,4,0,5,6};
            int zhong;
            for (int i = 0; i < 7; i++)
            {
                for (int j = i; i < 6; j++)
                {
                    if (shuzu[i] < shuzu[j + 1])
                    {
                        zhong = shuzu[i];
                        shuzu[i]=shuzu[j+1];
                        shuzu[j+1] = zhong;
                    }
                }
            }
            for (int i=0; i<7; i++)
            {
                Console.WriteLine(shuzu[i]);
            }

 

二维数组练习

            输入班级人数,将每个人的
            语文,数学,英语成绩输入二维数组

            Console.Write("请输入班级人数:");
            int a = int.Parse(Console.ReadLine());
            double [,] shuzu = new double [a,3];

            for (int i = 0; i < a; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    if (j == 0)
                    {
                        Console.Write("请输入第"+(i+1)+"个人的语文成绩:");
                    }
                    if (j == 1)
                    {
                        Console.Write("请输入第" + (i + 1) + "个人的数学成绩:");
                    }

                    if (j == 2)
                    {
                        Console.Write("请输入第" + (i + 1) + "个人的英语成绩:");
                    }
                    shuzu[i, j] = double.Parse(Console.ReadLine());
                }
            }

 

 冒泡排序和数组结合练习

            输入人数,输入每个人的成绩
            需要最高分,最低分
            去掉两个最高分,去掉两个最低分,求平均分

            Console.Write("请输入班级人数:");
            int a = int.Parse(Console.ReadLine());
            double[]fen=new double [a];
            for (int i = 0; i <a; i++)
            {
                Console.Write("请输入第"+(i+1)+"个人的成绩");
                fen[i] = double.Parse(Console.ReadLine());
            }
            double zhong;
            for (int i = 0; i < a; i++)

             {
                for (int j = i; j< a-1; j++)
                {
                    if (fen[i] < fen[j + 1])
                    {
                        zhong = fen[i];
                        fen[i] = fen[j + 1];
                        fen[j + 1] = zhong;
                    }
                }
            }

            Console.WriteLine("最高分是"+fen[0]);
            Console.WriteLine("最低分是"+fen[a-1]);
            double sum = 0;
            for (int i=2;i<a-2 ;i++ )
            {
                sum +=fen[i];
            }
            Console.WriteLine("平均分是"+sum/(a-4));

     抽奖活动:
            输入n个手机号码,滚动号码,5秒钟后停止
            输出中奖人号码

            Console.Write("请输入手机号码个数:");
            int a = int.Parse(Console.ReadLine());
            string [] shuzu = new string [a];
            for (int i = 0; i < a; i++)
            {
                Console.Write("请输入第"+(i+1)+"个手机号码:");
                shuzu[i] = Console.ReadLine();
            }
            Console.WriteLine("所有号码输入完毕,请按回车键开始滚动号码!");
            Console.ReadLine();
            Random ran = new Random();
            int r = 0;
            for (; ;)
            {
                int aa = ran.Next(a);
                Console.Clear();
                Console.WriteLine(shuzu[aa]);
                System.Threading.Thread.Sleep(100);
                
                if (r == 49)
                {
                    //作弊代码
                    //Console.Clear();
                    //Console.WriteLine("110");
                    break;
                }
                r++;
            }

 

posted @ 2016-03-13 08:45  Yao1101  阅读(236)  评论(0编辑  收藏  举报