首页 > 代码库 > 基础练习二

基础练习二

 //15. 用方法来实现:有一个字符串数组:{ "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特" },请输出最长的字符串。
            //string[] names = { "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特"};
            //string max = GetLongest(names);
            //Console.WriteLine(max);
            //Console.ReadKey();

        static string GetLongest(string[] names) 
        {
            // string max=names[0]; 这句是先把names数组的第一个元素的值,赋值max,就是说先把第一个数当最大的数,然后在for循环里面和其他的进行比较,如果存在names[i]的值大于max,那么就重新赋值最大值。。


            string max=names[0];
            for (int i = 0; i < names.Length; i++)
            {
                if(names[i].Length>max.Length)
                {
                     max=names[i];
                }            
            }
            return max;
            //16. 用方法来实现:请计算出一个整型数组的平均值。{ 1, 3, 5, 7, 93, 33, 4, 4, 6, 8, 10 }。要求:计算结果如果有小数,则显示小数点后两位(四舍五入)。
            //int[] nums = { 1, 3, 5, 7, 93, 33, 4, 4, 6, 8, 10 };
            //double avg = GetAvg(nums);
            //avg = Convert.ToDouble(avg.ToString("0.00"));
            //Console.WriteLine(avg);
            //Console.ReadKey();
      //求一个整型数组的平均值
        static double GetAvg(int[] nums)
        {
            double sum = 0;
            for (int i = 0; i < nums.Length; i++)
            {
                sum+=nums[i];
            }
            return sum / nums.Length;
        }
        

            //17. 请通过冒泡排序法对整数数组{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }实现升序排序。
            //int[] nums = { 1,3,5,7,90,2,4,6,8,10};
            //MaoPao(nums);
            //foreach (int item in nums)
            //{
            //    Console.WriteLine(item);
            //}
            //Console.ReadKey();

   //17.冒泡排序
        static void MaoPao(int[] nums)
        {
            for (int i = 0; i < nums.Length-1; i++)
            {
                for (int j = 0; j <nums.Length-1-j; j++)
                {
                    if(nums[j]>nums[j+1])
                    {
                        int temp=nums[j];
                        nums[j]=nums[j+1];
                        nums[j + 1] = temp;
                    }
                }
            }
        }
  


            //18。为教师编写一个程序,该程序使用一个数组存储30个学生的考试成绩,并给各个数组元素指定一个1-100的随机值,然后计算平均成绩。
            //好,我们先来定义一个长度为30的数组
            //int[] nums=new int[30];
            ////通过随机数给数组赋值,我们应该是给数组中德每一个元素赋值,通过for循环来实现
            ////初始化随机数对象
            //Random r = new Random();
            //int sum=0;
            //for (int i = 0; i < nums.Length; i++)
            //{
            //    //产生的随机数
            //    int number = r.Next(0,100);
            //    //将产生的随机数赋值给我们数组中的每一个元素
            //    nums[i] = number;
            //    sum+=nums[i];
            //}
            //Console.WriteLine(sum/nums.Length);
            //Console.ReadKey();




            //19. 有如下字符串:【"患者:“大夫,我咳嗽得很重。”     大夫:“你多大年记?”     患者:“七十五岁。”     大夫:“二十岁咳嗽吗”患者:“不咳嗽。”     大夫:“四十岁时咳嗽吗?”     患者:“也不咳嗽。”     大夫:“那现在不咳嗽,还要等到什么时咳嗽?”"】。需求:请统计出该字符中“咳嗽”二字的出现次数,以及每次“咳嗽”出现的索引位置。


          /*  string str = "患者:“大夫,我咳嗽得很重。”     大夫:“你多大年记?”     患者:“七十五岁。”     大夫:“二十岁咳嗽吗”患者:“不咳嗽。”     大夫:“四十岁时咳嗽吗?”     患者:“也不咳嗽。”     大夫:“那现在不咳嗽,还要等到什么时咳嗽?”";


            int index=str.IndexOf("咳嗽");//IndexOf 第一次出现的位置
            //我们可以直接找到第一”单词“出现的位置,但是第二个是在我们第一个的基础上加1再找的,那么什么时候就不找了呢,找不着了就不找了,返回值-1
            int count = 1;
            while (index!=-1)
            {
                count++;
                index = str.IndexOf("咳嗽",index+1);
                //这样会把-1找出来,下面我们来做一下判断
                if(index==-1)
                {
                    break;
                }
                Console.WriteLine("第{0}次找到咳嗽的位置是{1}",count,index);
            }
            Console.ReadKey();
            */






            //20. 将字符串"  hello      world,你  好 世界   !    "两端空格去掉,并且将其中的所有其他空格都替换成一个空格,输出结果为:"hello world,你 好 世界 !"。
          /*  string s = "  hello      world,你  好 世界   !    ";
            //去除空格用Trim()
            s = s.Trim();
            //那我们接下来怎么做呢?好,我们先将字符串中德空格都去掉,然后再用一个空格将他们连起来,返回一个数组
            string[] sNew= s.Split(new char[]{‘ ‘},StringSplitOptions.RemoveEmptyEntries);
            //用空格将他们连起来   用join,再重新赋值给字符串
            s = string.Join(" ",sNew);
            //打印输出
            Console.WriteLine(s);
            Console.ReadKey();
            */


            //21. 制作一个控制台小程序。要求:用户可以在控制台录入每个学生的姓名,当用户输入quit(不区分大小写)时,程序停止接受用户的输入,并且显示出用户输入的学生的个数,以及每个学生的姓名。效果如图:
            //学员姓名的集合
            /*  List<string> listName = new List<string>();
              while (true)
              {
                  Console.WriteLine("请输入学院姓名");
                  string name = Console.ReadLine();
                  //将姓名添加到集合中
                  if (name.ToLower()!="quit")
                  {
                      //如果输入的不是quit,就将输入的学员姓名添加到集合中
                      listName.Add(name);
                  }
                  else
                  {
                      break;
                  }
              }


              Console.WriteLine("您一共输入了{0}个学员的姓名",listName.Count);
              //打印每一个姓名
              for (int i = 0; i < listName.Count; i++)
              {
                  Console.WriteLine(listName[i]);
              }
              Console.ReadKey();
               */




            //22.题目内容同上题,再增加一个显示姓“王”的同学的个数,此处不考虑复姓问题。
          /*  List<string> listName = new List<string>();
            while (true)
            {
                Console.WriteLine("请输入学院姓名");
                string name = Console.ReadLine();
                //将姓名添加到集合中
                if (name.ToLower() != "quit")
                {
                    //如果输入的不是quit,就将输入的学员姓名添加到集合中
                    listName.Add(name);
                }
                else
                {
                    break;
                }
            }
            int count=0;
            Console.WriteLine("您一共输入了{0}个学员的姓名", listName.Count);
            //打印每一个姓名
            for (int i = 0; i < listName.Count; i++)
            {
                if(listName[i][0]==‘王‘)
                {
                    count++;
                }
                Console.WriteLine(listName[i]);
            }
            Console.WriteLine("姓王的同学有{0}个",count);
            Console.ReadKey();


            */


            //23. 请将字符串数组{ "中国", "美国", "巴西", "澳大利亚", "加拿大" }中的内容反转。然后输出反转后的数组。不能用数组的Reverse()方法。
            string[] names={ "中国", "美国", "巴西", "澳大利亚", "加拿大" };
            //调用函数,将数组传进去
            Change(names);
            foreach (string item in names)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
   //23.反转
        static void Change(string[] names) 
        {
        //要反转,需要将数组中的所有元素的长度/2,再两两的进行比较
            for (int i = 0; i < names.Length/2; i++)
            {
                string temp=names[i];
                names[i] = names[names.Length - 1 - i];
                names[names.Length - 1 - i]=temp;
            }
        }

            //25.什么是方法的重载
            //方法名相同参数不同(参数不同分为两种:1.类型一样,个数不一样;2.个数一样,类型不一样)
        }
     

基础练习二