VR引擎(第六课)

57 阅读1分钟

#一、 冒泡排序

总比对的轮数等于长度-1 比对的最大下标等于 长度-1-上一轮的总轮数-1 //循环数组 判断相邻两个数之间的大小

        string str = Console.ReadLine();//获取控制台输入的字符串,数字都是用空格隔开
        string[] strArray = str.Split(" ");//使用空格将字符串分割出来
        int[] intArray = new int[strArray.Length];//创建一个整型的数组
        for (int i = 0; i < strArray.Length; i++)//将分割出来的数字转成整型类型放到整型数组中
        {
            int number = Convert.ToInt32(strArray[i]);
            intArray[i] = number;
        }          
        for (int i=1;i<intArray.Length-1;i++)
        {
            //比对两个相邻的数
            for(int j=0;j<intArray.Length-i;j++)
            {
                if (intArray[j] > intArray[j+1])//如果前一个比后一个大那么就交换值
                {
                    int temp = intArray[j];
                    intArray[j] = intArray[j + 1];
                    intArray[j + 1] = temp;
                }
            }
        }
        Console.WriteLine(string.Join(" ", intArray));

1.

        string str = Console.ReadLine();
        string[] strArray = str.Split(" ");
        int[] intArray = new int[strArray.Length];
        for (int i = 0; i < strArray.Length; i++)
        {
            intArray[i] = Convert.ToInt32(strArray[i]);             
        }
        Array.Sort(intArray);//排好序的数组

        //先确定好要插入的下标位置
        //先输入一个数
        int m = Convert.ToInt32(Console.ReadLine());
        //定义一个变量存下标位置
        int numIndex = 0;
        //定义一个新数组,长度加一
        int[] numArray = new int[intArray.Length + 1];
        //先确定好要插入的下标位置
        for (int i = 0;i < intArray.Length - 1;i++)
            {
            if (intArray[i] <= m && m <= intArray[i+1])
            {
                numIndex = i+ 1;
                break;
            }
        }
        //循环结束  有两种情况出现就是插入到第一个下标位置前,插入到最后一个下标
        if (intArray[intArray.Length-1]<m)
        {
            numIndex = intArray.Length;
        }
        //给数组赋值
        for (int i = 0; i < numIndex; i++)
        {
            numArray[i] = intArray[i];
        }
        numArray[numIndex] = m;
        for(int i=numIndex+1;i<numArray.Length;i++)
        {
            numArray[i] = intArray[i - 1];
        }
        Console.WriteLine(string.Join(" ", numArray));

2.

        string str = Console.ReadLine();
        string[] strArray = str.Split(" ");
        int[] intArray = new int[strArray.Length];
        for (int i = 0; i < strArray.Length; i++)
        {
            intArray[i] = Convert.ToInt32(strArray[i]);
        }
        int max = 0;//记录最大连续降温的天数的值
        int count=1;//创建一个变量记录每次降温的天数,降一次温加一
        //循环遍历气温数组
        for(int i=0;i<intArray.Length-1;i++)
        {
            if (intArray[i] > intArray[i+1])
            {
                count ++; 
            }
           else
            {
                if(count>max)
                {
                    max = count;
                }
                count = 1;
            }
        }
        Console.WriteLine("气温连续升高的最高天数{0}", max);