C#数组的运用

一,定义

动态数组(显示数组):数组类型 [ ]   变量名=new   数组类型  [大小]

int[] a = new int[5];//定义一个有5个元素的整形数值

int[] a = { 1, 2, 3, 4, 5 };

二,访问

数组的访问:a[i]    i:下标 (从0开始)

赋值:a[0]=1;

void Get()

        {

            int[] a = {1,2,3,4,5};

            Console.WriteLine(a[0] + "\t" + a[3]);

        }

a.Length:数组的长度

for (int i = 0; i <a.Length; i++)

            {

                a[i] = i + 1;

            }

            Console.WriteLine(a[0] + "\t" + a[3]);

// 未经处理的异常:  System.IndexOutOfRangeException: 索引超出了数组界限。

静态数组(隐式数组)

int[] x={1,2,3,4,5};

void Get3()

        {

            //把a数组的值倒序放入b数组

            int[] a = { 1, 2, 3, 4, 5 };

            int[] b = new int[5];

            for (int i = a.Length-1; i >= 0; i--)//循环赋值

            {

                b[4-i] = a[i];//i:4 3 2 1 0

            }

            for (int i = 0; i < b.Length; i++)//循环输出

            {

                Console.WriteLine(b[i]);

            }

        }

三,排序

正序排列

int[] a = { 95, 74, 63, 87, 55 };

            Array.Sort(a);

            for (int i = 0; i < a.Length; i++)

            {

                Console.WriteLine(a[i]);

            }

倒序排列

int[] a = { 95, 74, 63, 87, 55 };

            Array.Sort(a);

for (int i = a.Length-1; i >=0 ; i--)

            {

                Console.WriteLine(a[i]);

         }

冒泡排列

int[] a = { 95, 74, 63, 87, 55 };

            int t;

            for (int i = 0; i < a.Length; i++)

            {

                for (int j = i; j < a.Length; j++)

                {

                    if (a[i] > a[j])//由小到大

                    {

                        t = a[i];

                        a[i] = a[j];

                        a[j] = t;

                    }

                }

            }

            for (int i = 0; i < a.Length; i++)

            {

                Console.WriteLine(a[i]);

            }

       }

从小到大排序

         int[] a = new int[10];
            Console.WriteLine("请输入10个整数");
            for (int i = 0; i < 10; i++)
            {
                int b = int.Parse(Console.ReadLine());
                a[i] = b;
            }
            int num=0;
            for (int i = 0; i < a.Length; i++)
            {
                for (int j = i+1; j < a.Length; j++)
                {
                    if (a[i]>a[j])//大于号改为小于号即可从大到小排列
                    {
                        num = a[i];
                        a[i] = a[j];
                        a[j] = num;
                    }
                }
            }
            foreach (var item in a)
            {
                Console.WriteLine(item);
            }

插入排序

             int[] b = { 10, 2, 7, 19, 15 };
            //2  7  10   X(12)  15  19
            //向数组里插入一个12
            Array.Sort(b);//排序
            //1,先定义一个长度比原来数值大一的数值
            //2,把数组的值赋给c数组
            //3,找到第一次比数值中值大的数值位置
            //4,把数值中的数值从“i”开始先后移动一位
            //5,把12放到“i”位置
            int[] c = new int[b.Length + 1];
            for (int i = 0; i < c.Length-1; i++)
            {
                c[i] = b[i];
            }
            int x = 12;
            int j = 0;//第一次找到的位置
            for (int i = 0; i < c.Length; i++)
            {
                if (c[i]>=x)
                {
                    j = i;
                    break;
                }
            }
            for (int i = c.Length-1; i >=j; i--)//倒序(--)
            {
                c[i] = c[i - 1];
            }
            c[j] = 12;
            foreach (var item in c)
            {
                Console.WriteLine(item);
            }
        }
            

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值