hq金水

愿你是阳光,明媚不忧伤~
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

知识点-------一维数组

Posted on 2016-04-23 16:46  hq金水  阅读(400)  评论(0编辑  收藏  举报

什么是数组?

内存中连续存储同一类数据的一块空间。

分类:一维,二维,多维。

数组---连续性,同类性,不能随便插入、增加、删除数据。

★一维数组:

类似于:豆角(一维)。(□□□□□□□□)每个豆荚(□)里面只放一个豆子。

1、定义:
数据类型[] 数组名 = new 数据类型[数组长度];

int[] a = new int[10];

string[] b = new string[20];

2、赋值:

(1)int[] a = new int[10]{21,22,23,24,25,26,27,28,29,30};
(2)数组名[下标]=值   
 a[0] = 10;
 a[1] = 20;
 a[2] = 30;

3、取值:

 Console.Write(a[2]);

 

a - 整个数组   (□□□□□□□□)

i - 下标  □         下标是从0开始算的。
a[i] - i下标这个空间中的值。 □中的值。
 

 

★遍历数组的方法:

 for循环遍历数组:

 int[] a = new int[5];

 for(int i = 0;i<a.length;i++)

{  

 Console.WriteLine(a[i]);

}

 

foreach遍历数组:

 int[] a = new int[5];

 foreach(int i in a)

 {

 Console.WriteLine(i);

}

 

 

案例:

1.输出数组a(10,20,30,40,50,60,70,80,90)。

public static void Main(string[] args)
        {
            int[] a = new int[10]{10,20,30,40,50,60,70,80,90,100};

            Console.WriteLine("下面是数组中的值");
            for (int i = 0; i < a.Length; i++)
            {
                Console.WriteLine(a[i]);
            }
        }

或者

public static void Main(string[] args)
        {
            int[] a = new int[10]{10,20,30,40,50,60,70,80,90,100};

            for (int i = 0; i < a.Length; i++)
            {
                a[i] = (i + 1) * 10;
            }


            Console.WriteLine("下面是数组中的值");
            for (int i = 0; i < a.Length; i++)
            {
                Console.WriteLine(a[i]);
            }
        }

 

2.20个评委给5位选手投票,输出每位选手所得票数。

  public static void Main(string[] args)
        {
            //星光大道投票
            int[] xs = new int[5];

            //20人投票
            for (int i = 0; i < 20; i++)
            {
                Console.Write("您投几号?(1-5号)\t");
                int hao = Convert.ToInt32(Console.ReadLine());

                xs[hao - 1] ++;

            }

            //显示
            for (int i = 0; i < 5; i++)
            {                                                                                                                                               
                Console.WriteLine("第{0}个选手,得票数是{1}票",i+1,xs[i]);
            }

        }

 

3.教练给球员打分:显示每分球员的得分,显示最高分及球员号,最低分及球员号,显示平均得分。

public static void Main(string[] args)
        {
            //教练给球员打分
            int[] qy = new int[10];
           
            //打分
            for (int i = 0; i < 10; i++)
            {
                Console.Write("请给第{0}个球员打分:", i+1);
                qy[i] = Convert.ToInt32(Console.ReadLine());
            }

            //显示
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine("第{0}号球员得分为:{1}", i + 1, qy[i]);
            }

            //找出最高分与最低分
            int max=0, min=1000;
            int max_no = 0, min_no = 0;
            for (int i = 0; i < 10; i++)
            {
                if (qy[i] > max)
                {
                    max = qy[i];
                    max_no = i;
                }
            }

            for (int i = 0; i < 10; i++)
            {
                if (qy[i] < min)
                {
                    min = qy[i];
                    min_no = i;
                }
            }

            Console.WriteLine("最高分是:{0}({2}号球员),最低分是:{1}({3}号球员)",max,min,max_no+1,min_no+1);
            
            //平均分
            int sum = 0;
            for (int i = 0; i < 10; i++)
            {
                sum = sum + qy[i];
            }

            double avg = 1.0*sum / 10;
            Console.WriteLine("本队球员平均得分为:{0}分",avg);
        }

 

★static和public static有啥区别

首先呢,他们两个并不冲突。如果只用static的话,就好像做好了一个煎饼,但这个煎饼呢只有一部分人才可以吃。如果只用public的话,就好像在大街上摆一个煎饼摊,谁都可以去做煎饼吃,如果两者都加上的话,就好像在大街上放了个做好的煎饼,谁都可以直接吃。