C# 数组 随机数

目录

数组(Array)的定义

1.如何去创建(声明)数组?

 2.如何修改数组中的数据?  

3.如何访问数组中的某个数据?

4.如果我想要查看数组中所有的数据如何操作?

 5.使用 foreach关键字

数组创建的几种方式

数组常用的方法

数组常用的方法函数内部结构代码

随机数生成


起初我们定义多个变量需要一个一个的定义,如下:

string name = "张三";
string name1 = "李四";
string name2 = "王五";

数组(Array)的定义

可以将多个同类的定义在一起,如何使用数组呢,见下文

1.如何去创建(声明)数组?

类型 [ ] 变量名  {数组中的数据}  数据与数据之间要用 “,” 号隔开
// 这里创建了一个字符串类型的数组 
string[ ] names = { "张三", "李四", "王五", "赵六","张二"};

 2.如何修改数组中的数据?  

通过    数组名[索引]  = "要修改的值"     进行修改; 
names[0] = "小张";

3.如何访问数组中的某个数据?

通过  数组名[索引]
Console.WriteLine(names[0]);

4.如果我想要查看数组中所有的数据如何操作?

遍历  循环  for  foreach
如何去控制循环的次数  也就是 如何知道数组中元素的长度
Length 属性: 获取数组中元素的个数   数组的长度
//注意: 索引是从零0开始的,长度是从1开始的
Console.WriteLine(names.Length);
for (int i = 0; i < names.Length; i++)
{
    Console.WriteLine(names[i]);
}

 5.使用 foreach关键字

foreach 关键字  (var 类型  item 遍历出来的每一项  in 在  name 要遍历的元素)
foreach (string item in names)
{
    Console.WriteLine(item);
}

数组创建的几种方式

方式一 直接书写创建 
int[] arr1;  // 只是声明了一个数组 并没有数据  也不知道数据长度  注意:这种创建方式创建数组的时候声明与赋值 必须在同一行完成
arr1[0] = 2;
int[] arr = { 1, 2, 3, 4 };  //长度及数据已经固定了 不能再添加值
//arr[4] = 20; //报错 添加不进去
Console.WriteLine(arr[4]);

方式二  通过new 关键字创建 [3]代表数组的长度 可以存放几个数据  创建了一个可以存放3个数据的数组  当没有设置值的时候 默认值为0
int[] arr2 = new int[3];
//设置数组中的数据
arr2[0] = 10;
arr2[1] = 20;
arr2[2] = 30;
Show(arr2);

方式三 通过new 关键字创建 后面跟上{} 添加数据 明确了数组中的数据  不指定长度
int[] arr3 = new int[] { 1, 2, 3, 4, 5, 6 };  //根据元素数量,自动匹配长度


方法四 通过new 关键字创建 [5] 指定数组长度 {} 数组中的数据  数据的个数要与长度一致 多了不行少也不行
int[] arr4 = new int[6] { 1, 2, 3, 2, 4, 5 };

//总结:不能访问索引不存在数据 ,索引是从0开始的 数组的长度是从1开始的  创建数组的时候要么有长度 要么有数据

数组常用的方法

 // Reveres 将数组中的数据颠倒顺序 反转
 Array.Reverse(arr4);
 Show(arr4);

 // Clear 清除
 Array.Clear(arr4);
 Show(arr4);

 // Indexof 查找数组中是否包含某个数据  如果有返回索引 没有返回-1 检测的时第一次出现的
 Console.WriteLine(Array.IndexOf(arr4,2));

 // LastIndexOf 查找数组中是否包含某个数据  如果有返回索引 没有返回-1 检测的时最后一次出现的
 Console.WriteLine(Array.LastIndexOf(arr4,2));

 // Sort 排序 将数组中的数据进行从小到大排序
 Array.Sort(arr4);

 //Array.Reverse(arr4);
 Show(arr4);

//定义一个函数输出数组内容 创建方法时  参数可以是任意类型
static void Show(int[]  arr)
    {
       foreach (var item in arr)
        {
           Console.WriteLine(item);
        }
    }

数组常用的方法函数内部结构代码

        #region 查找元素第一次出现的位置
        //打三条斜杠
        /// <summary>
        /// 查找数组是否包含某个数据 第一次出现的位置
        /// </summary>
        /// <param name="arr"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        //Idexof 查找数据第一次出现的位置
        //打三条斜杠
        static int Idexof(int[] arr ,int value)
        {
            //如何拿到数组中的每个元素,与要查的值进行比较
            //不能用foresch,没法返回位置

            int n = 1;
            for (int i = 0; i < arr.Length; i++)
            {
                //判断是否有一样的数据存在
                if (arr[i] == value)
                {
                    //return i;用这个会结束程序
                    n = i;
                    break;
                }          
            }
            return n;
        
        }
        #endregion


        #region 查找元素最后一次出现的位置
        /// <summary>
        /// 查找数组是否包含某个数据 最后一次出现的位置
        /// </summary>
        /// <param name="arr"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        static int lastIdexof(int[] arr, int value)
        {
            //如何拿到数组中的每个元素,与要查的值进行比较
            //不能用foresch,没法返回位置i

            int n = 1;
            for (int i = arr.Length-1; i >=0; i--)
            {
                //判断是否有一样的数据存在
                if (arr[i] == value)
                {
                    //return i;用这个会结束程序
                    n = i;
                    break;
                }
            }
            return n;

        }

        #endregion


        #region 反转数组
        /// <summary>
        /// 反转数组
        /// </summary>
        /// <param name="arr"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        static int[] Reveres(int[] arr)
        {
            int[] arr1=new int[arr.Length];
            for (int num=0,i = arr.Length - 1; i >= 0;num++, i--)
            {
                arr1[num]= arr[i];  
            }

            return arr1;
        }
        #endregion


        #region 排序
        /// <summary>
        /// 用冒泡法排序
        /// </summary>
        /// <param name="arr"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        static void Sort(int[] arr)
        {
            bool isChange = false;//标记排序完成
            int num = 0; //记录交换次数
            for (int i = 0; i < arr.Length - 1; i++)
            {
                for (int j = 0; j < arr.Length - 1 - i; j++)
                {
                    if (arr[j] > arr[j + 1])
                    {
                        int temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                        isChange = true;
                        num++;
                    }
                }
                if (isChange == false)
                { break; }
            }
        }
        #endregion

随机数生成

 //当我们想要使用一个不是静态类或抽象类的类时 要先进行实例化

 //对象实例化
 Random rd = new Random();
 int num =  rd.Next();  //随机随机一个数字   伪随机

 //0-99  返回一个小于指定值(100) 非负的随机数
 int num1 = rd.Next(100);

 //10-100 返回一个指定区间内的随机数 不包含指定的最大值
 int num2 = rd.Next(90,101);
 Console.WriteLine(num2);

C#中声明一个随机数数组可以通过使用 `Random` 类来实现。`Random` 类位于 `System` 命名空间中,提供了生成伪随机数的方法。以下是一个完整的示例,展示如何声明并初始化一个包含随机数数组: ```csharp using System; class Program { static void Main() { // 创建 Random 对象 Random random = new Random(); // 声明数组大小 int arraySize = 10; // 声明并初始化整型数组 int[] randomNumbers = new int[arraySize]; // 填充数组 for (int i = 0; i < arraySize; i++) { // 生成范围在 1 到 100 的随机数 randomNumbers[i] = random.Next(1, 101); } // 输出数组内容 Console.WriteLine("随机数数组内容:"); foreach (int number in randomNumbers) { Console.WriteLine(number); } } } ``` 上述代码首先创建了一个 `Random` 实例,用于生成随机数[^4]。接着声明了一个固定大小的整型数组,并通过循环调用 `random.Next(minValue, maxValue)` 方法填充数组,其中 `minValue` 是最小值(包括),而 `maxValue` 是最大值(不包括)。最后,遍历数组并输出其内容。 ### 随机数范围控制 若需要生成特定范围内的随机数,例如从 `1` 到 `100`,可以使用 `random.Next(1, 101)` 来确保上限值 `100` 被包含在内。注意,`Next(int minValue, int maxValue)` 的第二个参数是独占的,因此要获取到 `100`,需指定 `101` 作为上限[^4]。 ### 浮点数随机数 如果需要生成浮点类型的随机数,则可以使用 `NextDouble()` 方法,它返回一个大于等于 `0.0` 并小于 `1.0` 的双精度浮点数。例如: ```csharp double[] randomDoubles = new double[arraySize]; for (int i = 0; i < arraySize; i++) { // 生成 0.0 到 1.0 之间的随机浮点数 randomDoubles[i] = random.NextDouble(); } ``` 此方法适用于需要非整数随机值的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值