3.13·········冒泡排序

Posted 魅影星魂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.13·········冒泡排序相关的知识,希望对你有一定的参考价值。

抽奖活动:
输入n个手机号码,滚动号码,5秒钟后停止
输出中奖人号码

 Console.Write("请输入手机号码个数:");
            int a = int.Parse(Console.ReadLine());
            string [] shuzu = new string [a];
            for (int i = 0; i < a; i++)
            {
                Console.Write("请输入第"+(i+1)+"个手机号码:");
                shuzu[i] = Console.ReadLine();
            }
            Console.WriteLine("所有号码输入完毕,请按回车键开始滚动号码!");
            Console.ReadLine();
            Random ran = new Random();//初始化
            int r = 0;
            for (; ;)
            {
                int aa = ran.Next(a);//小于a的随机一个数
                Console.Clear();
                Console.WriteLine(shuzu[aa]);
                System.Threading.Thread.Sleep(100);//休眠0.1秒
                
                if (r == 49)//第50遍即5秒后跳出
                {
                    //作弊代码
                    //Console.Clear();
                    //Console.WriteLine("110");//循环结束后显示的号码是110
                    break;
                }
                r++;
            }


            Console.ReadLine();

 冒泡排序:数组里面的每一个数与他后面的每一个数相比较,若小于,则换位

 

 int[] shuzu = new int[] { 3, 1, 8, 4, 0, 5, 6 };
            //8134056
            //8314056
            //8413056
            //8513046
            //8613045
            //8631045
            //8641035
            //8651034
            //8653014
            //8654013
            //8654103
            //8654301
            //8654310
            int zhong;
            for (int i = 0; i < 6; i++)
            {
                for (int j = i + 1; j < 7; j++)
                {
                    if (shuzu[i] < shuzu[j])//shuzu[0]~shuzu[6]从大到小排列,若条件是大于,则从小到大排列
                    {
                        zhong = shuzu[i];
                        shuzu[i] = shuzu[j];
                        shuzu[j] = zhong;
                    }
                }
            }
            //for (int i = 0; i < 7; i++)
            //{
            //    Console.Write(shuzu[i] + " ");
            //}           
            foreach (int a in shuzu)//遍历数组
            {
                Console.Write(a+" ");
            } 
            Console.ReadLine();

 foreach(object a in shuzu),打印shuzu里面的每一个数据,变量a的数据类型必须和数组的数据类型一致,若实在不知什么类型,可用object。

object是所有类的基类,可以接收任何数据类型

object a = 1;
object b = "123";
object c = true;
object d = 3.14;

输入人数,输入每个人的成绩
需要最高分、最低分
去掉两个最高分,去掉两个最低分,求平均分。

   Console.Write("请输入人数:");
            int n = int.Parse(Console.ReadLine ());
            double[] s = new double[n];//成绩是double类型
            double zhong;
            double sum = 0;
            for (int i = 0; i < n;i++ )
            {
                Console.Write("请输入第"+(i+1)+"个人的成绩:");
                s[i] = double.Parse(Console.ReadLine());//将n个人的成绩放进数组
            }
            for (int i = 0; i < n - 1;i++ )//冒泡排序
            {
                for (int j = i + 1; j < n;j++ )
                {
                    if (s[i]>s[j])//从小到大排列
                    {
                        zhong = s[i];
                        s[i] = s[j];
                        s[j] = zhong;
                    }
                }
            }
            Console.WriteLine("最高分为:"+s[n-1]);
            Console.WriteLine("最低分为:" + s[0]);
            for (int i = 2; i < n - 2; i++)//去掉两个最高分,去掉两个最低分
            {
                sum += s[i];
            }
            Console.WriteLine("去掉两个最高分,去掉两个最低分平均分为:"+sum/(n-4));
            Console.ReadLine();

技术分享

五个候选班长,20人投票。(输入1-5来表示支持哪个人)最后查看票数,看那个人胜出。

int[] s=new int[20];
            for(int i=0;i<20;i++)
            {
                Console.Write("请问你支持的候选人是几号:");
                for (; ; )
                {
                    int a = int.Parse(Console.ReadLine());
                    if (a < 1 || a > 5)
                        Console.Write("输入有误,请重新输入您支持的候选人号码:");
                    else
                    {
                        s[i] = a;
                        break;
                    }
                }
            }
            int s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0;
            for (int j = 0; j < 20; j++)
            {
                if(s[j] ==1)
                    s1 += 1;
                if (s[j] == 2)
                    s2 += 1;
                if (s[j] == 3)
                    s3 += 1;
                if (s[j] == 4)
                    s4 += 1;
                if (s[j] == 5)
                    s5 += 1;
            }
            if (s1 >= s2 && s1 >= s3 && s1 >= s4 && s1 >= s5)
                Console.Write("一号 ");
            if (s2 >= s1 && s2 >= s3 && s2 >= s4 && s2 >= s5)
                Console.Write("二号 ");
            if (s3 >= s2 && s3 >= s1 && s3 >= s4 && s3 >= s5)
                Console.Write("三号 ");
            if (s4 >= s2 && s4 >= s3 && s4 >= s1 && s4 >= s5)
                Console.Write("四号 ");
            if (s5 >= s2 && s5 >= s3 && s5 >= s4 && s5 >= s1)
                Console.Write("五号 ");
            Console.WriteLine("获胜");

 

以上是关于3.13·········冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

3.15课·········out传值(传址)

3.29课·········表单验证和事件

3.16课·········小结

3.31课·········插入百度地图视频音频

3.12课·········数组

Verilog学习笔记基本语法篇········ 循环语句