传智的光辉岁月-C#基础篇四数组

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

namespace P01Array
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr = new int[2] { 22, 33 };
            double dd = arr[0];

            ArrTurnBig();
            Console.ReadLine();
        }

        #region 3.0 为数组“扩容”
        /// <summary>
        /// 3.0 为数组“扩容”
        /// </summary>
        static void ArrTurnBig()
        {
            int[] arr = new int[3] { 110, 220, 3330 };
            //arr.Length
            //arr[0] = 11;

            //创建一个新的数组,长度(容量)是原来数组的长度 +1(简而言之就是 多一个空间!)
            int[] arrNew = new int[arr.Length + 1];

            //1.将 原来数组 里的元素 拷贝 到 新数组 对应下标 的空间中
            //1.1使用代码直接拷贝,缺点:代码量大
            //arrNew[0] = arr[0];
            //arrNew[1] = arr[1];
            //arrNew[2] = arr[2];
            //1.2使用方法拷贝,将 源数组 里的 元素 按照下标 依次拷贝到 目标数组中!
            //   第二个参数是 指 从 目标数组 的 第几个空间开始存放!
            arr.CopyTo(arrNew, 1);

        }
        #endregion

        #region 2.0 数组的循环 和 初始化器
        /// <summary>
        /// 数组的循环 和 初始化器
        /// </summary>
        static void M12ArrayFor()
        {
            int[] arrint2 = new int[2] { 110, 22 };
            int[] arrInt = new int[3];
            arrInt[0] = 1;
            arrInt[1] = 13;
            arrInt[2] = 12;
            arrInt[0] = 14;

            //1.数组的初始化器-----------------------
            //平时我们创建一个数组后,数组里的空间 都是默认值 或者 都是空!
            //                  有默认值的变量:int,float,double... bool(false)
            //                  没有默认值的变量类型:string(null)
            //如果需要给值的话,必须 通过下标 一个个的去给值!太麻烦了~~~~!
            // 初始化器 就是为了能够 方便的 为 数组在创建的 同时 赋值的 语法
            string[] arrStrNames = new string[3] { "小白", "大林老师", "苍老师" };
            string[] arrStrNames2 = new string[] { "小白", "大林老师", "苍老师", "波老师" };
            string[] arrStrNames3 = { "小白", "大林老师", "苍老师", "波老师", "小林老师" };

            /*2. 数组专有名词
             *  数组的元素:指的就是 数组里 第n个空间  里存放的值!
             *  数组的长度:数组 的空间个数!
             *  数组的下标:就是指 要访问的数组的空间 的"序号",注意:"序号"从 0 开始!
             */
            //3.数组的遍历------------------------------------
            //3.1一般使用 for循环来遍历数组里的元素
            Console.WriteLine("for 循环 遍历数组:");
            for (int i = 0; i < arrStrNames3.Length; i++)
            {
                string strTemp = arrStrNames3[i];//需要 根据 当前循环的i的数值,去数组中 获取 对应下标的 元素!
                Console.WriteLine(strTemp);
            }

            //3.2foreach循环:可以直接 从 数组中 依次 获取 元素
            Console.WriteLine("foreache 循环 遍历数组:");
            foreach (string strElement in arrStrNames3)
            {
                Console.WriteLine(strElement);
            }
        }
        #endregion

        #region 1.0 讲解数组基本语法
        /// <summary>
        /// 1.0 讲解数组基本语法
        /// </summary>
        static void M11Array()
        {
            /*1.创建数组 的 语法
             *  =号左侧的代码 int[] arrInts ,就是在栈空间 开辟了一个 指针大小的空间 用来存放 地址;
             *  =号右侧的代码 new int[3],就是在堆空间 开辟 连续的 3个 int类型大小 的 空间!
             *  =号 将 3个空间的 第1个空间的地址 设置给了 变量 arrInts
             */
            int[] arrInts = new int[3];

            //2.使用【下标】为数组赋值
            arrInts[0] = 111;
            arrInts[1] = 777;
            arrInts[2] = 7777;

            //3.访问数组里 指定下标 的值
            Console.WriteLine(arrInts[0]);
            Console.WriteLine(arrInts[1]);
            Console.WriteLine(arrInts[2]);

        }
        #endregion

        #region 1.1 数组习题
        /// <summary>
        /// 1.1 数组习题
        /// </summary>
        static void M10Array()
        {
            //1.要求 保存 用户输入的 n 个学员名字!
            Console.WriteLine("请输入您班上同学的人数:");
            int stuCount = int.Parse(Console.ReadLine());
            //1.1根据 学员人数,创建 一组 字符串类型 的 变量
            string[] names = new string[stuCount];//创建了一组 stuCount 个 字符串类型的 变量

            //2.接收学员的名字,存入 数组中
            for (int i = 0; i < stuCount; i++)
            {
                Console.WriteLine("请输入第{0}位学员的名字:", i + 1);
                //?问题,用什么来保存 这 n个学员的名字呢?
                names[i] = Console.ReadLine();
            }

            //3.使用for循环 遍历数组 里的 每个 名字
            // 数组有个 Length属性,返回 数组里空间的 个数!(数组长度)
            for (int i = 0; i < names.Length; i++)
            {
                Console.WriteLine("第{0}学员名字:{1}", i + 1, names[i]);
            }

        }
        #endregion

        #region 题目7:猜测 随机数--如果用户输入的字符串 不能转换成 int 变量,那么 就提示用户输入错误,请他重新输入!(int.TryParse)
        /// <summary>
        /// 题目7:猜测 随机数
        /// </summary>
        static void M07Random()
        {
            /* 猜数字游戏.  随机产生1个1-100之间的数
             * 让用户猜 当用户输入的数比产生的随机数大 就输出 猜大了。
             * 当用户输入的数比产生的随机数小的时候 就输出 猜小了
             * 当用户刚好输入的就是这个随机数的时候 提示成功  并显示用户猜了多少次.*/
            //1.随机产生1个1-100之间的数
            Random ran = new Random();//创建 随机数生成器 对象
            int ranNum = ran.Next(1, 51);//产生一个 1~50 之间的随机数
            Console.WriteLine("随机数已产生成功~~~");
            int guessNum = 0;//用户猜的次数
            //2.用户猜
            while (true)
            {
                Console.WriteLine("请输入您的竞猜数值:");

                //接收用户的 输入,并进行 类型监测,如果不是整型的变量,则重新输入!
                string strUsrNum = Console.ReadLine();
                int usrNum = 0;
                //将 字符串strUsrNum 转成 整型变量 赋值给 整型的 usrNum变量;
                //   如果 转换成功,则返回 true
                //   如果 转换失败,则返回 false
                bool isNum = int.TryParse(strUsrNum, out usrNum);

                if (!isNum)//如果用户输入的字符串 不能转换成 int 变量,那么 就提示用户输入错误,请他重新输入!
                {
                    Console.WriteLine("请输入数值!");
                    continue;//结束本次循环,进入下一次循环
                }

                guessNum++;//记录猜测的次数

                if (usrNum == ranNum)
                {
                    Console.WriteLine("恭喜您,猜对了~~送你两个美女~~~~!请笑纳~!");
                    break;
                }
                else if (usrNum > ranNum)
                {
                    Console.WriteLine("您猜的数字 大了~~!");
                }
                else if (usrNum < ranNum)
                {
                    Console.WriteLine("您猜的数字 小了~~!");
                }
            }
            Console.WriteLine("您一共猜了{0}次~~", guessNum);
        }
        #endregion

        #region 题目6:用户输入班级的人数. 然后依次输入他们的成绩. 输出总成绩 和 平均成绩.(求和、再求平均值)
        /// <summary>
        /// 题目6:用户输入班级的人数. 然后依次输入他们的成绩. 输出总成绩 和 平均成绩.(求和、再求平均值)
        /// </summary>
        static void M07SumAndAvg()
        {
            int totalScore = 0;

            Console.WriteLine("请输入您所在班级的人数:");
            int stuCount = int.Parse(Console.ReadLine());

            //循环班级人数次数,依次累加 班级总成绩
            for (int i = 0; i < stuCount; i++)
            {
                Console.WriteLine("请输入第【{0}】位学员的成绩:", i + 1);
                int stuScore = int.Parse(Console.ReadLine());
                totalScore += stuScore; //相当于: totalScore = totalScore + stuScore;
            }

            Console.WriteLine("您所在班级总人数为{0},总成绩为:{1},平均分为:{2}", stuCount, totalScore, totalScore * 1.0f / stuCount);
        }
        #endregion

        #region 题目5:计算1到100(含)之间的除了能被7整除之外所有整数的和
        /// <summary>
        /// 题目5:计算1到100(含)之间的除了能被7整除之外所有整数的和
        /// </summary>
        static void M06Sum()
        {
            int sum = 0;
            for (int i = 1; i <= 100; i++)
            {
                //如果能被7 整除,则 跳过 【本次循环--continue后的代码不执行,直接进入下次循环】
                if (i % 7 == 0)
                    continue;

                sum += i;
            }
            Console.WriteLine("总和为:" + sum);
        }
        #endregion

        #region 题目4:用户输入5个数值,最后显示输入的最大值
        /// <summary>
        /// 题目4:用户输入5个数值,最后显示输入的最大值
        /// </summary>
        static void M05Max()
        {
            //最大值 变量
            int maxNum = -1;
            //循环接收 5次 用户的值
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine("请输入第【{0}】个数字:", i + 1);
                //接收用户的 数值
                int num = int.Parse(Console.ReadLine());//Convert.ToInt32();
                //判断 用户数值 是否比原来的 最大值大
                if (num > maxNum)
                {
                    //如果大,则把用户数值 作为新的最大值 存起来
                    maxNum = num;
                }
            }

            Console.WriteLine("最大值为" + maxNum);
        }
        #endregion

        #region 题目3:求1-100之间6的倍数的个数
        /// <summary>
        /// 题目3:求1-100之间6的倍数的个数
        /// </summary>
        static void M04()
        {
            //求1-100之间6的倍数的个数
            int count = 0;
            for (int i = 1; i <= 100; i++)
            {
                if (i % 6 == 0)
                {
                    count++; //count = count + 1;
                }
            }
            Console.WriteLine("1-100之间6的倍数的个数:" + count);
        }
        #endregion

        #region 题目2:乘法口诀表
        /// <summary>
        /// 题目2:乘法口诀表
        /// </summary>
        static void M03()
        {
            /*
             * 1*1=1
             * 2*1=2 2*2=4
             * 3*1=3 3*2=6 3*3=9
             * ..............
             * 9*1=9 .............................9*9=81
             */

            //1.0 循环行
            for (int row = 1; row <= 9; row++)
            {
                //2.0 根据 当前行 循环打印 当前行里的 列
                for (int col = 1; col <= row; col++)
                {
                    //3.0 输出 列 * 行 =  乘积
                    string strMsg = string.Format("{0}*{1}={2}\t", col, row, (col * row));
                    Console.Write(strMsg);
                }
                Console.Write("\n");
            }
        }
        #endregion

        #region 题目1:问do u love me?
        /// <summary>
        /// 题目1:问do u love me?
        /// </summary>
        static void M02()
        {
            //1.凡是 根据条件来循环,就用 while 或者 do while
            //while (true)
            //{
            //    Console.WriteLine("Do u love me ~~~ ?");
            //    string res = Console.ReadLine();
            //    if (res == "yes")
            //    {
            //        break;
            //    }
            //}

            //string res = "";
            //do
            //{
            //    Console.WriteLine("Do u love me ~~~ ?");
            //    res = Console.ReadLine();
            //} while (res != "yes");

            //2.虽然 for循环也可以完成,但是不建议使用它来根据条件循环; for 循环时专门用来 根据次数循环的!
            for (; ; )
            {
                Console.WriteLine("Do u love me ~~~ ?");
                string res = Console.ReadLine();
                if (res == "yes")
                {
                    break;
                }
            }

            Console.WriteLine("thks~~~~ just kidding~~!");
        }
        #endregion

        #region 1.0 作业题 void M01Homework()
        /// <summary>
        /// 1.0 作业题
        /// </summary>
        static void M01Homework()
        {
            int a = 110;
            //注意:&& 符号 在执行的时候 是从左到右的执行,遇到任何一个 false,就立即结束运行,并返回 false
            //         &&只有整个表达式里所有的判断都为true,才返回true
            //                    其中任何一个判断 为false,就返回false
            if (a++ > 220 && ++a < 50)
            {

            }
            Console.WriteLine(a);
        }
        #endregion
    }
}

  

时间: 2024-10-12 15:45:26

传智的光辉岁月-C#基础篇四数组的相关文章

传智的光辉岁月-C#基础篇一编译原理

时间过的真快,不知不觉已经从传智出来,工作一个月了啊,想想当初自己的所有努力和付出都是值得的,当初来传智可以说是走头无路,唯有努力的向前冲,在这里满满的正能量,激烈着我一直努力,胜利就在前面,只要你能坚持坚持~~~对于我这样的一个新手而言,现在最重要的就是技术积累,一入IT深似海,我要学的东西还真的很多很多... 以前一直没时间,现在在工作之余,想把自己以前学的东西整理一套笔记,供.NET爱好者,和自己以后翻阅参考.... 好了直接上代码... using System; namespace H

传智的光辉岁月-C#基础篇十小练习

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P03练习 { class Program { static void Main(string[] args) { Test05(); } public static void Test01() { /*请编写1个方法,求一列数的规则如下: 1.1.2.3.5.8.13.21.34.55...... 求指定

传智的光辉岁月-C#基础篇七类和静态成员

1.new关键字做的4个事情 1.1 开辟堆空间 a.开辟多大的空间呢? 当前类 所有的 成员变量类型所占空间的总和 + 类型指针(方法表的地址) b.开辟了空间干什么用呢? 存放 成员变量 1.2 创建对象 a.将对应类型 中的 实例成员模板区 里的 实例变量 复制到 堆空间空间中: b.将 对应类型 的 方法表地址 设置 对象! 1.3 调用构造函数 a.将 前面创建 的对象 的堆地址,先传给 构造函数里的 this! b.再 执行 构造函数里的代码! 1.4 返回堆地址 2.静态成员 和

传智的光辉岁月-C#基础篇六飞行棋

飞行棋业务:我们要能够让2个玩家 在地图上 按照游戏规则 进行游戏 玩家类 变量:玩家位置,玩家名称,玩家标识,玩家是否在陷阱中 方法:投骰子,移动 地图类 变量:地图数据数组 方法:初始化地图数据,绘制地图,显示Logo 游戏规则类 变量: 方法:第一次游戏说明,判断玩家位置是否有障碍物,根据不同障碍物执行不同操作,判断游戏是否结束 using System; using System.Collections.Generic; using System.Linq; using System.T

传智的光辉岁月-C#基础篇八构造函数和面向对象思想

3.关于 对象创建的几个关键词 Dog d1 = new Dog(); Dog d1 叫做 声明变量 new Dog() 叫做 实例化(创建)对象 4.关于对象.方法和 this 的关系 Dog d1 = new Dog();//在new关键字 开辟堆空间,创建完对象,开始调用构造函数的时候,会把对象的地址 传给 构造函数里的 this d1.ShowLove();//在调用方法时,会先将 d1里保存的 对象地址 传给 方法里的 this,然后再执行方法体: 5.静态方法 只能 访问 静态成员,

传智的光辉岁月-C#基础篇九OOP属性结构枚举

1.设计一个Ticket类,有一个距离属性(本属性只读,在构造方法中赋值),不能为负数,有一个价格属性,价格属性只读,并且根据距离计算价格(1元/公里):-----------0-100公里 票价不打折101-200公里 总额打9.5折201-300公里 总额打9折300公里以上 总额打8折有一个方法,可以显示这张票的信息. 业务:不需要设计太多,只需要 提示用户 拥有的票的种类,然后让用户选择,选择后 按照价格打折后 显示给用户强调:只需要两个类(Ticket 票据类,Saler 售票员类)

传智的光辉岁月-C#基础篇五值类型和引用类型

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01Method { class Program { static void Main(string[] args) { //int a1 = 11; //int b2 = 22; //Add2Num(a1, b2);//在调用方法时,为 方法括号中 传递的 值 就叫做 实参(实际参数) //Add2Nu

传智的光辉岁月-C#基础篇二变量与变量类型

说到数据类型,先把基本的数据类型拿出来 byte 0 到 255 无符号 8 位整数sbyte -128 到 127 有符号 8 位整数short -32,768 到 32,767 有符号 16 位整数int -2,147,483,648 到 2,147,483,647 有符号 32 位整数long -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 有符号 64 位整数float ±1.5 × 10-45 到 ±3.4 × 1038do

传智的光辉岁月-C#基础篇三流程控制1

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01Review { class Program { //全局变量如果没有初始化也没有复制,那么编译器会给它默认值: // 数值类型默认值:0 // bool 默认值:false // string 默认值:null //1.2全局变量(类的成员变量) static int count; static v