博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
●数组及应用举例
阅读量:5057 次
发布时间:2019-06-12

本文共 6444 字,大约阅读时间需要 21 分钟。

数组

         数组用来分组基本类型或相同类型的对象。数组中的实体叫做数组的元素或成员。

         我们可以用Length来得到其中的元素的数目。(应用同字符串)

         内存、连续、同一类数据的一块区域

        

分类:

         一维数组

                   int [ ]a = new int [5];      //定义一个整形数组a,该数组含5个元素(数组下标都是从0开始)

         二维数组

         三维数组

 

附:

         编程时要使功能相对独立

 

 

应用举例:

//10个球员的总分、平均分、最高分、最低分            int[] a = new int[10];            for (int i = 1; i <= 10; i++)            {                Console.Write("请输入" + i + "号球员分数:");                a[i - 1] = Convert.ToInt32(Console.ReadLine());            }            int sum = 0;            for (int k = 0; k < 10; k++)            {                sum = sum + a[k];            }            Console.WriteLine("总分为:" + sum);            Console.WriteLine("平均分:" + (1.0 * sum / a.Length));              //找最高分、最低分            int max = a[0];            int min = a[0];            int max1 = 0;            int min1 = 0;            for (int j = 0; j < 10; j++)            {                if (a[j] > max)                {                    max = a[j];                    max1 = j + 1;                }                if (a[j] < min)                {                    min = a[j];                    min1 = j + 1;                }            }            Console.WriteLine("最高分为:{0}号球员{1}", max1, max);            Console.WriteLine("最低分为:{2}号球员{3}", min1, min);              //分数按升序排序 int b = a[0];            for (int m = 0; m < 10; m++)            {                for (int n = 1; n < 10; n++)                {                    if (a[n] < a[n - 1])                    {                        b = a[n];                        a[n] = a[n - 1];                        a[n - 1] = b;                    }                }            }            Console.WriteLine("分数按升序排列:");            for (int c = 0; c < 10; c++)            {                Console.Write(a[c] + "\t");            }

 

//去掉一个最高分一个最低分,求平均分            int[] a = new int[10];            for (int i = 1; i <= 10; i++)            {                Console.Write("请输入分数" + i + ":");                a[i - 1] = Convert.ToInt32(Console.ReadLine());            }            int sum = 0;            for (int i = 0; i < 10; i++)            {                sum = sum + a[i];            }            int max = a[0], min = a[0];            for (int j = 1; j < 10; j++)            {                if (a[j] > max)                {                    max = a[j];                }                if (a[j] < min)                {                    min = a[j];                }            }            Console.WriteLine("去掉一个最高分{0},去掉一个最低分{1},平均分是{3}", max, min, 1.0 * (sum - max - min) / 8);

 

//去掉2个最高分和2个最低分,求平均分              //定义一个整型数组,用来存放分数            int[] a = new int[10];            for (int i = 1; i <= 10; i++)            {                Console.Write("请输入分数" + i + ":");                a[i - 1] = Convert.ToInt32(Console.ReadLine());            }                //求总分            int sum = 0;            for (int i = 0; i < 10; i++)            {                sum = sum + a[i];            }                //选出最高分跟最低分,以及对应的元素            int max = a[0], min = a[0], max_no = 0, min_no = 0;            for (int j = 1; j < 10; j++)            {                if (a[j] > max)                {                    max = a[j];                    max_no = j;                }                if (a[j] < min)                {                    min = a[j];                    min_no = j;                }            }                //选出次高分跟次低分            int max1 = a[0], min1 = a[0];            for (int j = 1; j < 10; j++)            {                if (a[j] > max1 && j != max_no)                {                    max1 = a[j];                }                if (a[j] < min1 && j != min_no)                {                    min1 = a[j];                }            }            double average = 1.0 * (sum - max - max1 - min - min1) / 6;            Console.WriteLine("去掉2个最高分,去掉2个最低分,平均分是{0}", average);

 

//5个候选班长,20人投票,求票数最多的            string[] x = new string[20];            for (int i = 0; i < 20; i++)            {                Console.WriteLine("请输入数字0~5");                Console.Write((i + 1) + "号投票:");                x[i] = Console.ReadLine();            }            int[] y = new int[5];            for (int i = 0; i < 20; i++)            {                if (x[i] == "0")                {                    y[0]++;                }                else if (x[i] == "1")                {                    y[1]++;                }                else if (x[i] == "2")                {                    y[2]++;                }                else if (x[i] == "3")                {                    y[3]++;                }                else if (x[i] == "4")                {                    y[4]++;                }            }            int max = y[0], max1 = 0;            for (int i = 1; i < 5; i++)            {                if (y[i] > max)                {                    max = y[i];                    max1 = i;                }            }            Console.WriteLine("{0}以{1}票当选班长!", max1, max);            //上面的方法有局限性,当人数多票数多时,用以下方法:            int[] votes = new int[5];            for (int i = 0; i < 20; i++)            {                Console.Write("请投票(0-4):");                int n = Convert.ToInt32(Console.ReadLine());                if (n >= 0 && n <= 4)                {                    votes[n]++;                }                else                {                    Console.WriteLine("废票");                }            }            //找最大            int max = votes[0], max1 = 0;            for (int i = 1; i < 5; i++)            {                if (votes[i] > max)                {                    max = votes[i];                    max1 = i;                }            }            Console.WriteLine("{0}以{1}票当选班长!", max1, max);
//36选7            int[] a = new int[7];            Random ran = new Random();                //生成7个数,比较是否重复并赋值给数组每个元素            for (int i = 1; a[6]==0; i++)            {                int n = ran.Next(36)+1;                for (int j = 0; j < 7; j++)                {                    if (a[j] == n)                    {                        break;                    }                    if (a[j] == 0)                    {                        a[j] = n;                        break;                    }                }            }                //输出            for (int i = 0; i < 7; i++)            {                Console.Write(a[i]+"\t");            }

 

转载于:https://www.cnblogs.com/phantom-k/p/3930383.html

你可能感兴趣的文章
数据结构3——浅谈zkw线段树
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
V2019 Super DSP3 Odometer Correction Vehicle List
查看>>
Python 3.X 练习集100题 05
查看>>
今时不同往日:VS2010十大绝技让VS6叹服
查看>>
设计器 和后台代码的转换 快捷键
查看>>
在线视频播放软件
查看>>
用代码生成器生成的DAL数据访问操作类 基本满足需求了
查看>>
28初识线程
查看>>
Monkey测试结果分析
查看>>
Sublime Text 3 设置
查看>>
浅谈C++底层机制
查看>>
STL——配接器、常用算法使用
查看>>
第9课 uart
查看>>
Range和xrange的区别
查看>>
BZOJ 1010 [HNOI2008]玩具装箱 (斜率优化DP)
查看>>
java-动态规划算法学习笔记
查看>>
STL容器之vector
查看>>
Linux 内核中断内幕
查看>>
DNS负载均衡
查看>>