06001_常量、枚举、结构、数组、冒泡排序、方法 – 恵玩科技


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace day6
{
    class Program
    {
        //数组:一次定义多个相同类型的变量
        /*
         * 语法:数据类型[] 数组名=new 数据类型[数组的长度]
         * int[] intAge=new int[6];
         * 整型变量 没有默认值
         * 整型数组定义开辟空间后,默认值是0
         */
        int[] scores = new int[6] {1,2,3,4,5,6 };
        //赋值
        //现在必须静态数组才能直接调用
        
        int[] nums3 = new int[] { 12, 21, 123, 321, 133 };
        //age1[0]=88;
        //

        //反转数组
        //Array.Reverse();
        

        //索引器:  索引器 中的索引  索引从0开始


        /*
         * 注意:数组必须定义在一个类中,不能直接在命名空间中定义
         * 
         */
        static void Main(string[] args)
        {
            int[] nums2 = { 11, 22, 33, 44, 55, 66 };
            //引用数组
            for (int i=0;i<nums2.Length;i++) {
                Console.WriteLine(nums2[i]);
            }
            //反转测试
            Array.Reverse(nums2);
            // 引用数组
            for (int i = 0; i < nums2.Length; i++)
            {
                Console.WriteLine("--->反转后"+nums2[i]);
            }

            /*
             * 练习1:从一个整数数组中取出最大的整数,最小整数,总和,平均值
             */
            int[] nums4 = {1,2,3,4,5,6,7,8,9,0 };
            //最大值
            int max = 0;
            //最小值
            int min = 0;
            //总和
            int sum = 0;
            Console.WriteLine("---------------数组练习--------------\n\n\n");
            //利用循环求结果
            for (int i=0;i<nums4.Length;i++)
            {
                sum += nums4[i];//求和

                //最小值
                if (min>nums4[i])
                {
                    //将比最小值小的值赋给最小值
                    min = nums4[i];
                }
                if (nums4[i]>max)
                {
                    //将比最大值大的值赋给最大值
                    max = nums4[i];
                }
            }
            //输出结果
            Console.WriteLine("----------练习1-------------\n\n\n\n\n数组的最大值为{0}最小值为{1}总和为{2}平均值为{3}", max,min,sum,sum/nums2.Length);

            /*
             * 练习2,数组里面人的名字,分割成:   例如 老杨  |老苏   |...
             */
            //定义一个数组
            string[] str = {"老吴", "老周", "老李", "老孙", "老钱", "老赵" };
            string strs = "";
            for (int i=0;i<str.Length;i++)
            {
                if (i == str.Length-1)
                {
                    strs += str[i];
                }
                else
                {
                    strs += str[i] + "  |";
                }
                
            }
            Console.WriteLine("----------练习2-------\n\n\n\n\n" + strs);

            /*
             * 练习3:字符反转
             */
            //实例
            string[] str1 = { "总", "有", "叼", "民", "想", "害", "朕" };
            Console.WriteLine("--------练习3-------\n\n\n\n\n反转前:\n");
            //打印字符
            string strs2 = "";
            for (int i = 0; i < str1.Length; i++)
            {

                strs2 += str1[i];
            }
            Console.WriteLine(strs2);
            //反转字符--->利用循环
            for (int i=0;i<str1.Length;i++)
            {
                string temp;//临时变量,用来存放值
                temp = str1[i];//第i个元素
                str1[i] = str1[str1.Length - i - 1];
                str1[str1.Length - i - 1] = temp;
                //总结一下数组的特点:虽然数组长度为n,但是实际上最后一个数的索引是n-1
                //原因是数组索引从0开始
                //导致结果是如果要对最后一个数组元素进行操作,需要索引n-1

            }
            //打印字符
            string strs1="";
            for (int i = 0; i < str1.Length; i++)
            {
                
                strs1 += str1[i];
            }
            Console.WriteLine("反转后:\n"+strs1);


            /*
             * 冒泡排序 水里面的泡泡由小到大依次浮出水面
             */
            //定义一个实例数组
            int[] nums1 = {11,22,33,44,12,123,321,222,333,444,432 };
            //使用循环对数组元素排序

            //外层控制比较轮数
            for (int i=0;i<nums1.Length;i++)
            {
                //内层控制每一轮比较次数
                for (int j=0;j<nums1.Length-i-1;j++)
                {
                    //交换
                    int temp;
                    if (nums1[j]<nums1[j+1])
                    {
                        //如果前面的数比后面的数小,交换两个数的值
                        //--->这样能够保证最大的数一直在最前面
                        temp = nums1[j];
                        nums1[j] = nums1[j+1];
                        nums1[j+1] = temp;
                    }
                }

            }
            //打印结果
            Console.WriteLine("----------练习3--------\n\n\n\n");
            for (int i=0;i<nums1.Length;i++)
            {
                Console.WriteLine(nums1[i]);
            }
            
            //引用枚举
            Gender studentGender;
            studentGender = Gender.男;

            //引用结构
            Student stuZs = new Student();//使用new关键字创建新的结构体
            stuZs.name = "张三";
            stuZs.gender = Gender.男;
            stuZs.age = 18;
            stuZs.weight = 170;

            Console.ReadLine();
        }

        
    }
    //定义枚举
    /*
     * 语法
     * enum 枚举名{枚举值1,枚举值2,...枚举值n}
     */
    enum Gender
    {
        男,
        女
        //用逗号隔开
    }

    //结构,可以一次定义多个类型的变量
    //要定义在命名空间中
    /*
     * 定义结构的语法:
     * 访问修饰符  struct 结构名字{
     *  类型1
     *  类型2
     *  类型3
     *  ...
     * }
     */
        /// <summary>
        /// 定义了一个结构Student存放学生信息
        /// </summary>
    struct Student
    {
        public string name;
        public Gender gender;//枚举值定义了一种类型,可以自己被引用
                             //结构里面需要输入分号  枚举里面输入逗号
        public int age;
        public int weight;
    }

    


}

 

打赏作者