12月26 一维数组

********数组(解决同一类大量数据在内存存储和运算的功能)**********

 分类:一维数组、二维数组、三维数组

一、一维数组:豆角形

 1、定义:    int[]a=new int[5];

其中int为数组类型,int[]代表int型数组,a为数组名称,new是创建的意思,5是数组的长度。

数组的定义类型很多,如:int[]a=new int[5]{20,30,40,50,60};这个是定义的同时赋值。

注意:这与C语言、java不同,后面的数字个数一定得与前面数字相同。

取值:Console.Write(a[i]);取值的形式

2、数组的好处:

(1)、对大量同类型的数据来说定义一个数组即可(简单方便)

 (2)、用循环可以控制下标进行批量操作。

          例如:       

int[]a=new int[5];        

               for(int i=0;i<5;i++)         // 批量赋值

              {

                  a[i]=(i+1)*10;

               }

               console.write(a[i]);

 

3、案例:

(1)、10个评委给一个选手打分,打分后,去掉一个最高,一个最低。               

static void Main(string[] args)
        {
            int i, j, max = 0, min = 10000, k = 0, p = 0;
            int[] a = new int[10];
            for (i = 0; i < 10; i++)
            {
                Console.Write("请输入你打的分数");
                a[i] = Convert.ToInt32(Console.ReadLine());

            }
            for (j = 0; j < 10; j++)
            {
                if (a[j] > max)
                {
                    max = a[j];
                }
                if (a[j] < min)
                {
                    min = a[j];

                }
            }
            for (j = 0; j < 10; j++)
            {
                if (max == a[j])
                { k++; }
                if (min == a[j])
                { p++; }

            }

            for (j = 0; j < 10; j++)
            {

                if (max != a[j] && min != a[j])
                { Console.Write(a[j] + "\t"); }

                for (; k > 1; k--)
                { Console.Write(max + "\t"); }

                for (; p > 1; p--)
                { Console.Write(min + "\t"); }

            }
        }

效果图:

(2)、做一个36选7的彩票生成器。

 

static void Main(string[] args)
        {
            int i, j, k;
            int[] a = new int[7];

            Random rand = new Random();            //随机生成器不能放在for循环里面

            for (i = 0; i < 7; i++)
            {
                int n = rand.Next(36);
                n++;

                // 查重
                bool chong = false;
                for (j = 0; j < a.Length; j++)
                {

                    if (n == a[j])
                    {
                        chong = true;
                        break;
                    }

                }
                if (chong == false)
                {
                    a[i] = n;
                }
                else { i--; } // 将不符合要求的数清除,重新循环读入
            }
            for (k = 0; k < a.Length; k++)
            {
                Console.Write(a[k] + "\t");
            }
        }

 

效果图:

(3)、抽奖:从20个手机号中随机抽取一个中奖号码(滚动显示)。

static void Main(string[] args)
        {
            int i;
            long[] a = new long[20] 
{ 18369195769, 18369192343, 18365432669, 15095765549, 13769195745, 18234567869, 15067889909, 13895766678, 13789201549,15192575779,13899265549,13895766678,13995765549,18369192343,18369115553,1509333333,15888888549,

15095765549,15095766666,15091234566 };


            Random rand = new Random();
            for (i = 0; i < 200; i++)
            {
                int n = rand.Next(20);

                System.Threading.Thread.Sleep(100);        //调整每一个号码的显示时间
                Console.Clear();                                // 清屏
                Console.Write(a[n] + "\t");

            }
        }

(4)、选班长:30人投票,从五个人中选出一人当班长。

static void Main(string[] args)
        {
            int i, j, max = 0;
            int[] a = new int[5];
            int[] n = new int[30];

            Random rand = new Random(); //生成随机数

            for (i = 0; i < 30; i++)
            {
                n[i] = rand.Next(5); //将生成的数赋给一个数组
                Console.Write(n[i] + "\t");
                for (j = 0; j < 5; j++) //经过循环将每个人所得票数统计一下
                {
                    if (j == n[i])
                    {
                        a[j]++;
                    }
                }
            }
            for (j = 0; j < 5; j++) // 找出票数最高的人
            {
                if (a[j] > max)
                {
                    max = a[j];

                }

            }
            Console.Write("a[" + j + "]获得最高票,最高得票数是" + max + "");
        }

效果图:

posted on 2014-12-26 22:07  冰上逐狐  阅读(134)  评论(0编辑  收藏  举报