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)、6个评委给一个选手打分,打分后,去掉一个最高,一个最低。

                          

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 aaa(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 bbb(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人投票,从五个人中选出一人当班长。

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 + "票");

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。