栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C# 复习第三课

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C# 复习第三课

![在这里插入图片描述](https://img-blog.csdnimg.cn/4349473bb1934973bb18c84c76317106.png?x-oss-process=im

一、数组

why: 一次性存储多个相同类型的变量
how:数组类型[] 数组名=new 数组类型[数组长度]
what:

 class Program
    {
        static void Main(string[] args)
        {
            int[] str = new int[5];
            for (int i = 0; i < str.Length; i++)
            {
                str[i] = i;
                Console.WriteLine(i);
            }
            //默认值为null   null与""不一样
            string[] st = new string[8];
            //默认值为false
            bool[] bl = new bool[9];

            //数组的声明方式:
            int[] One = new int[6];
            int[] Two = { 2, 5, 6, 8, 9 };

            //以下两种可以不记
            int[] Three = new int[] { 3, 5, 7, 6 };
            int[] Four = new int[3] { 1, 2, 3 };


            Console.WriteLine("------------------");

            #region 从一个整数数组中取出最大、最小的整数,以及总和 平均值
            //int[] Five = { 8, 9, 5, 7, 2, 1, 3 };
            int max = Five[0];
             int min = Five[2];
            //int max = int.MinValue;
            //int min = int.MaxValue;
            //int sum = 0;
            //for (int i = 0; i < Five.Length; i++)
            //{
            //    //1.代表数组中当前循环到的元素
            //    //2.代表数组中的每一个元素
            //    if (Five[i] > max)
            //    {
            //        max = Five[i];
            //    }
            //    if (Five[i] < min)
            //    {
            //        min = Five[i];
            //    }
            //    sum += Five[i];
            //}
            //Console.WriteLine("最大值时:{0},最小值是:{1},总和为:{2},平均值:{3}", max, min, sum, sum / Five.Length);
            #endregion

            #region 练习2:计算一个整数数组的所有元素的和
            //int[] Five = { 8, 9, 5, 7, 6, 3, 2 };
            //int sum = 0;
            //for (int i = 0; i < Five.Length; i++)
            //{
            //    sum += i;

            //}
            //Console.WriteLine(sum);
            #endregion

            #region 练习3: 数组里面都是人的名字,分割成: 例如: 老杨 | 老苏 | 老邹…”
            //string[] str1 = { "老杨", "老苏", "老邹", "老虎", "老牛", "老王", "老马", "老蒋" };
            //将每个元素都累加到一个字符串中,然后以|分割
            string[] str1 = { "老杨", "老苏", "老邹", "老虎", "老牛", "老王", "老马", "老蒋" };
            string str2 = null;
            for (int i = 0; i < str1.Length-1; i++)
            {
                str2 +=str1[i]+"|";
               
            }
            Console.WriteLine(str2+str1[str1.Length-1]);

            //string s = string.Join("|", str1);
            //Console.WriteLine(s);
            #endregion
            #region 练习4:将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,如果元素是负数则将这个位置的元素的值减1,如果元素是0,则不变。
            int[] Six = { -5, -6, -7, 0, 5, 3, 1 };
            for (int i = 0; i < Six.Length; i++)
            {
                if (Six[i] > 0)
                {
                    Six[i] += 1;
                    Console.WriteLine(Six[i]);
                }
                else if (Six[i] < 0)
                {
                    Six[i] -= 1;
                    Console.WriteLine(Six[i]);
                }
                else
                {
                    Console.WriteLine(Six[i]);
                }
            }
            #endregion
            
           
            #region 练习5:将一个字符串数组的元素的顺序进行反转。{“我”,“是”,”好人”}“好人”,”是”,”我”}。第i个和第length - i - 1个进行交换
           
            string[] s = { "我", "是", "好人" };
            for (int i = 0; i < s.Length/2; i++)
            {
                string temp = s[i];
                s[i]= s[s.Length - 1 - i];
                s[s.Length - 1 - i] = temp;
            }
            Console.WriteLine();
            //排序之后得重新遍历一遍数组
            for (int i = 0; i  

二、冒泡排序

第一种:

 class Program
    {
        static void Main(string[] args)
        {
            //int[] a = { 5, 6, 4, 2, 9, 1, 3 };
            //for (int i = 0; i < a.Length-1; i++)
            //{
            //    for (int j = 0; j < a.Length-1-i; j++)
            //    {
            //        if (a[j]>a[j+1])
            //        {
            //            int temp = a[j];
            //            a[j] = a[j + 1];
            //            a[j + 1] = temp;
            //        }
            //    }

            //}
            //foreach (object item in a)
            //{
            //    Console.WriteLine(item);
            //}

            int[] array = { 5, 9, 4, 6, 3, -1, 0 };
            MaoPaoSort(array);
            foreach (var item in array)
            {
                Console.WriteLine(item);
            }
        }

        private static void MaoPaoSort(int[] array)
        {

            for (int i = 0; i < array.Length - 1; i++)
            {//先定义 是排好的 发生位置交换证明没有排好
                bool isSort = true;//判断一下 如果需要交换位置的话就交换 不需要的话就跳出位置交换循环
                for (int j = 0; j < array.Length - 1; j++)
                {
                    if (array[j] > array[j + 1])
                    {
                        int temp = array[j];
                        array[j] = array[j + 1];
                        array[j + 1] = temp;
                        isSort = false;
                    }
                }
                if (isSort)
                {
                    break;
                }
            }


        }
    }

第二种:

class Program
    {
        static void Main(string[] args)
        {
            int[] array = { 2, 5, 9, 4, 6, 1, 3, 7, 8 };
            //冒泡排序
            MaoPaoSort(array);
            //插入排序 InsertSort(array);

            foreach (var item in array)
            {
                Console.Write(item + ",");
            }
            Console.ReadKey();
        }
        private static void MaoPaoSort(int[] array)
        {
          
            for (int j = 0; j < array.Length - 1; j++)
            {
                bool isSort = true;
                for (int i = 0; i < array.Length - 1; i++)
                {
                    if (array[i] > array[i + 1])
                    {
                        int tamp = array[i];
                        array[i] = array[i + 1];
                        array[i + 1] = tamp;
                        isSort = false;
                    } 
                }
                if (isSort)
                {
                    break;
                }
            }
            
        }
    }

三、插入排序
class Program
    {

        static void Main(string[] args) {

            int[] array = new int[] { 1, 5, 6, 8, 7, 3, 4 };

            InsertSort(array);
            foreach (var item in array)
            {
                Console.Write(item);
            }
            Console.ReadKey();
        }

        private static void InsertSort(int[] array)
        {
            for (int i = 1; i < array.Length; i++)
            {
                int x = array[i];
                bool isInsert = false;
                for (int j = i - 1; j >= 0; j--)
                {
                    if (array[j] > x)
                    {
                        array[j + 1] = array[j];
                    }
                    else
                    {
                        array[j + 1] = x;
                        isInsert = true;
                        break;
                    }
                }
                if (!isInsert)
                {
                    array[0] = x;
                }
            }
        }
    }

四、方法的重载

what:方法名相同,参数列表的位置 顺序 类型不同
how:

 class Program
    {
        static void Main(string[] args)
        {
        }
        public static void Test(int a) { }
        public static void Test() { }
        public static void Test(string a) { }
        public static void Test(string a,string b) { }
    }

五、练习题
class Program
    {

        static void Main(string[] args)
        {
            #region MyRegion
            

            #endregion
            #region 水仙花数
            //for (int i = 100; i < 1000; i++)
            //{
            //    if (isSXH(i))
            //    {
            //        Console.WriteLine(i);
            //    }
            //}
            #endregion

            #region 一个控制台应用程序,求1000之内的所有“完数”。所谓“完数”是指一个数恰好等于它的所有因子之和。例如6是完数,因为6=1+2+3。
            //for (int i =1; i < 1000; i++)
            //{
            //    if (isWS(i))
            //    {
            //        Console.WriteLine(i);
            //    }
            //}
            #endregion



            #region 一个控制台应用程序,要求完成写列功能。
            // 1)接收一个整数n。
            //2)如果接收的值n为正数,输出1~n间的全部整数。
            //3)如果接收的值n为负值,用break或者return退出程序。
            //4)如何n为0的话 转到1继续接收下一个整数。

            //Console.WriteLine("请输入一个整数");
            //while (true)
            //{
            //    int a = int.Parse(Console.ReadLine());
            //    if (a > 0)
            //    {
            //        for (int i = 1; i <= a; i++)
            //        {
            //            Console.Write(i + ",");
            //        }
            //        break;
            //    }
            //    else if (a == 0)
            //    {
            //        Console.WriteLine("继续输入整数");
            //        continue;
            //    }
            //    else
            //    {
            //        break;
            //    }
            //}


            #endregion

            #region 要求用户输入5个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入。
            //Console.WriteLine("输入5个大写字母");
            //A:
            //string s = Console.ReadLine();
            //for (int i = 0; i < s.Length; i++)
            //{
            //    if (s[i]<'A'||s[i]>'Z'||s.Length!=5)  字符串本质是数组所以可以用s[i]来进行表示
            //    {
            //        Console.WriteLine("输入不对");
            //        goto A;
            //    }
            //}

            #endregion

            #region 输出1~5的平方值,要求:用for语句实现。用while语句实现。用do-while语句实现。
            //for (int i = 1; i <= 5; i++)
            //{
            //    Console.WriteLine(i*i);
            //}

            //int i = 1;
            //while ( i <= 5 )
            //{
            //    Console.WriteLine(i * i);
            //    i++;
            //}

            //int i = 1;
            //do
            //{
            //    Console.WriteLine(i * i);
            //     i++;
            //} while (i <= 5);
            #endregion

            #region 编写一个掷筛子100次的程序,并打印出各种点数的出现次数。
            //Random ran = new Random();//随机的对象要放在循环外边,不然很容易出现一样的数
            //int n1=0, n2=0, n3=0, n4=0, n5=0, n6=0;
            //for (int i = 0; i < 100; i++)
            //{
            //  int temp=  ran.Next(1,7);
            //    switch (temp)
            //    {
            //        case 1:
            //            n1++;
            //            break;
            //        case 2:
            //            n2++;
            //            break;
            //        case 3:
            //            n3++;
            //            break;
            //        case 4:
            //            n4++;
            //            break;
            //        case 5:
            //            n5++;
            //            break;
            //        case 6:
            //            n6++;
            //            break;
            //    }
            //}
            //Console.WriteLine("1出现了{0}次,2出现了{1}次,3出现了{2}次,4出现了{3}次,5出现了{4}次,6出现了{5}次",n1,n2,n3,n4,n5,n6);

            #endregion

            #region 编程输出九九乘法表
            //for (int i = 1; i <= 9; i++)   行 
            //{ 
            //    for (int j =1; j <=i; j++)  列
            //    {
            //        Console.Write("{1}*{0}="+i*j+"t",i,j);
            //    }
            //    Console.WriteLine();
            //}
            #endregion

            #region 编程输出1000以内的所有素数
            //for (int i = 2; i < 1000; i++)
            //{
            //    if (isZS(i))
            //    {
            //        Console.WriteLine(i);
            //    }
            //}
            #endregion

            #region 编程输出1~100中能被3整除但不能被5整除的数,并统计有多少个这样的数。
            //int n = 0;
            //for (int i = 1; i <= 100; i++)
            //{
            //    if (i%3==0&&i%5!=0)
            //    {
            //        Console.WriteLine(i);
            //        n++;
            //    }
            //}
            //Console.WriteLine("一共{0}个满足条件的",n);
            #endregion

            #region 编写一个控制台程序,分别输出1~100之间的平方、平方根。
            //for (int i = 1; i <= 100; i++)
            //{
            //    Console.Write(i+"的平方:"+i*i+"     ;");
            //    Console.WriteLine(i + "的平方根:"+Math.Sqrt(i));
            //}
            #endregion

            #region 求出1~1000之间的所有能被7整除的数,并计算和输出每5个的和。
            //int sum = 0;
            //int num = 0;
            //for (int i = 1; i <= 1000; i++)
            //{
            //    if (i%7==0)
            //    {
            //        sum += i;
            //        num++;
            //        if (num==5)
            //        {
            //            Console.WriteLine(sum);
            //            sum = 0;
            //            num = 0;
            //        }
            //    }
            //}
            #endregion

            #region 让用户输入两个整数,然后再输入0-3之间的一个数,0代表加法,1代表减法,2代表乘法,3代表除法,计算这两个数字的结果
            //Console.WriteLine("输入第一个整数");
            //int a = int.Parse(Console.ReadLine());
            //Console.WriteLine("输入第二个整数");
            //int b = int.Parse(Console.ReadLine());
            //Console.WriteLine("0代表加法,1代表减法,2代表乘法,3代表除法");
            //string s = Console.ReadLine();

            //switch (s)
            //{
            //    case "0":
            //        Console.WriteLine(a+b);
            //        break;
            //    case "1":
            //        Console.WriteLine(a- b);
            //        break;
            //    case "2":
            //        Console.WriteLine(a * b);
            //        break;
            //    case "3":
            //        Console.WriteLine(a / b);
            //        break;
            //    default:
            //        break;
            //}
            #endregion

            #region 编写一个程序,对输入的4个整数,求出其中的最大值和最小值,并显示出来。


            //Console.WriteLine("请输入第一个数");
            //int a = int.Parse(Console.ReadLine());

            //Console.WriteLine("请输入第二个数");
            //int b = int.Parse(Console.ReadLine());

            //Console.WriteLine("请输入第三个数");
            //int c = int.Parse(Console.ReadLine());

            //Console.WriteLine("请输入第四个数");
            //int d = int.Parse(Console.ReadLine());

            //int max = a;
            //if (b > max) max = b;
            //if (c > max) max = c;
            //if (d > max) max = d;
            //Console.WriteLine("最大值是:" + max);


            //int min = a;
            //if (b < min )min = b;
            //if (c < min) min = c;
            //if (d < min) min = d;
            //Console.WriteLine("最小值是:" + min);
            #endregion
            Console.ReadKey();
        }

        private static bool isSXH(int a)
        {//123
            string s = a.ToString();
            int sum = 0;
            for (int i = 0; i < s.Length; i++)
            {
                int temp = int.Parse(s[i].ToString());
                sum += temp * temp * temp;
            }
            return a == sum;
        }

        private static bool isWS(int a)
        {
            int sum = 0;
            for (int i = 1; i < a; i++)
            {
                if (a % i == 0)
                {
                    sum += i;
                }
            }
            return a == sum;
        }

        //判断一个数是不是质数
        private static bool isZS(int a)
        {
            for (int i = 2; i < a; i++)
            {
                if (a % i == 0)
                {
                    return false;
                }
            }
            return true;

        }



    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/316447.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号