140822●数组及应用举例

数组

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

我们可以用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);
                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");
            }
时间: 2024-10-11 22:43:59

140822●数组及应用举例的相关文章

PHP数组处理函数举例

在PHP中,存储在数组中的值成为数组元素,数组有一维数组和多维数组之分,每个数组元素的索引也称为关键字,访问数组元素可以通过索引.数组处理函数举例如下: 一.创建数组 1.使用array()函数创建数组:array array([$key=>]$value,...) $key=>$value,定义了关键字的键名和值,自定义键名可以字符串或数字.如果省略键名,函数会自动产生从0开始的整数作为键名.如果只对某个给出的值没有指定键名,则键名取该值前面最大的整数键名+1后的值. 注意:①可以使用pri

数组常用算法举例加解释(第一篇)

 一,插入算法 一个数组有序,在添加一个元素后,求数组依然有序 //先定义一个数组(如要添加元素,咱们得在元素末尾空出来一个预备位0),顺便定义要加入的元素t        int []a=new int[]{1,3,7,9,12,20,0};        int t=8:        //首先咱们得找到该元素 的位置排在第几位:让t和数组中的每一个元素 依次 参与比较 直到遇到恰好比他大的那个元素        int loc=-1; //表示t应该在的位置        for(int

vector数组用法及举例

vector详解 1.调用vector的头文件 注意:c++编程中填写这个头文件 2.vector的用法 注意:大概来讲,vector就是一个变长数组,与a[]这种普通数组不同的是,他不用定义多长,是根据用户的用法变化的,同时它的用法及方法也与普通数组不同 3.vector的存取方法及特殊 注意:vector的存取与栈相同(即一种无盖有底的“洞”,从顶端存入,从顶端取出): 3.vector数据的读取及其他方法 注意:iterator是一种迭代器,即一种读取器,其功能类似for循环:利用iter

数组中常用算法(方法)总结

1.堆栈 注意堆栈中的node需要暂存哪些数据,以及入口. 举例:二维数组中找到用相邻字母组成的目标字符串. Given board = [ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E'] ] word = "ABCCED", -> returns true,word = "SEE", -> returns true,word = "ABCB", -> return

Linux Shell系列教程之(六)Shell数组

本文是Linux Shell系列教程的第(六)篇,更多shell教程请看:Linux Shell系列教程 Shell在编程方面非常强大,其数组功能也非常的完善,今天就为大家介绍下Shell数组的用法. Shell支持一维数组(不支持多维数组),并且没有限定数组的大小. 类似与C语言,数组元素的下标由0开始编号.获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0. 一.Shell数组的定义 在Shell中,用括号来表示数组,数组元素之间用“空格”分割开. 定义数组的一般形式

javascript 数组的常用操作函数

join() Array.join(/* optional */ separator) 将数组转换为字符串,可带一个参数 separator (分隔符,默认为","). 与之相反的一个方法是:String.splict() ,将字符串分隔成若干块来创建一个新的数组. reverse() Array.reverse(),颠倒数组元素的顺序,返回逆向的数组.注意此方法会修改原来数组元素的位置,而不是返回一个新的数组. sort() sort() 方法将数组中的元素排序并返回排序后的数组.s

javascript 常用的数组操作

join() Array.join(/* optional */ separator) 将数组转换为字符串,可带一个参数 separator (分隔符,默认为","). 与之相反的一个方法是:String.splict() ,将字符串分隔成若干块来创建一个新的数组. reverse() Array.reverse(),颠倒数组元素的顺序,返回逆向的数组.注意此方法会修改原来数组元素的位置,而不是返回一个新的数组. sort() sort() 方法将数组中的元素排序并返回排序后的数组.s

Java基础-数组和面向对象

一.数组相关 1.可变参数 在设计方法时,方法的最后一个参数的个数是可变的,这种变动的参数就叫可变参数 jdk1.5增加的新特征,适用于参数个数不明确,类型确定的情况 java中把可变参数,当作数组来处理 注意事项: 1.可变参数必须在形参列表的最后一项 2.三个点  ...  位于变量类型和变量名之间,前后有无空格都可以. 2.Arrays工具类 负责对数组进行排序.查找.等等操作 主要用于操作一维数组 java.util.Arrays 静态方法:使用  类名.方法名   直接调用 常用方法:

04_Java基础语法_第4天(数组)_讲义

今日内容介绍 1.流程控制语句switch 2.数组 3.随机点名器案例 01switch语句解构 * A:switch语句解构 * a:switch只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码. * b:格式如下: swtich(表达式){ case 常量1 : 要执行的语句; break; case 常量2 : 要执行的语句; break; case 常量3 : 要执行的语句; break; default: 要执行的语句; break; } * c: 执行流程: 表达式,和c