数组和方法2019.8.5

一、数组

1.引用类型
2.定义语法
数据类型[] 数组名=new 数据类型[6];
1)长度固定
2)数组每个元素的数据类型必须一样
3.初始化数组

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

4.遍历数组
例题:冒泡排序

int[] t = { 21, 20, 1, 2, 34 };
            for (int i = 0; i < t.Length-1; i++)//每次排好一位,需要排length-1次
            {
                for (int j = 0; j < t.Length-1-i; j++)//两两对比,需要对比length-i-1次
                {
                    if (t[j]>t[j+1])
                    {
                        int tmp = t[j];
                        t[j] = t[j+1];
                        t[j + 1] = tmp;

                    }
                }
            }
            for (int i = 0; i < t.Length; i++)
            {
                Console.WriteLine(t[i]);
            }

5.二维数组

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

6.交错数组

int[][] num = new int[3][] { new int[2] { 1, 2 }, new int[3] { 1, 2, 3 }, new int[6] { 1, 2, 3, 4, 5, 6 } };
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < num[i].Length; j++)
                {
                    Console.Write("\t"+num[i][j]);
                }
                Console.WriteLine();
            }

二、方法

1一.方法定义
2.方法调用
1)值和引用传递
值传递
值传递
定义方法:

public static int GetMax(int a, int b)
        {
            a++;
            b++;
            int max = a;
            if (b > max)
            {
                max = b;
            }
            return max;
        }

Main中:

        Console.WriteLine("请您输入第一个数");
        int num1 = Convert.ToInt16(Console.ReadLine());
        Console.WriteLine("请您输入第二个数");
        int num2 = Convert.ToInt16(Console.ReadLine());
        Console.WriteLine("最大的数是{0}", GetMax(num1, num2));
        Console.WriteLine("num1, num2分别是:{0}、{1}", num1, num2);

引用传递
引用传递
定义方法:

 public static int GetMax(ref int a, int b)
            {
                a++;
                b++;
                int max = a;
                if (b > max)
                {
                    max = b;
                }
                return max;
            }

Main中:

        Console.WriteLine("请您输入第一个数");
        int num1 = Convert.ToInt16(Console.ReadLine());
        Console.WriteLine("请您输入第二个数");
        int num2 = Convert.ToInt16(Console.ReadLine());
        Console.WriteLine("最大的数是{0}", GetMax(ref num1, num2));
        Console.WriteLine("num1, num2分别是:{0}、{1}", num1, num2);

2)默认参数

3.ref out params:可变参数

1)out 定义方法:

public static int GetMainMinAvg(int[] a, out int max, out int min, out int avg)  
        {
            int sum = 0;
            max = a[1];
            min = a[1];
            avg = 0;
            for (int i = 0; i < a.Length; i++)
            {
                if (a[i]<min)
                {
                    min = a[i];
                }
                if (a[i]>max)
                {
                    max = a[i];
                }
                sum += a[i];
            }
            avg = sum / a.Length;
            return sum;
        }

Main函数中:

int[] arr = { 1, 2, 3, 4, 5 };
            int sum, max, min, avg;
            sum = GetMainMinAvg(arr, out max, out min, out avg);
            Console.WriteLine();

2)params:1)只能修饰数组;2)只能放在末尾;3)只能出现一次
定义方法:

public static int Sum( params int[] a)
        {
            int sum = 0;
            for (int i = 0; i < a.Length; i++)
            {
                sum += a[i];
            }
            
            return sum;
        }

Main函数中:

int sum = Sum(1, 2, 3, 4, 5, 6);
            Console.WriteLine("Sum(1, 2, 3, 4, 5, 6)的值是{0}",sum);

三.方法的重载
1.方法名一样
2.参数类型或者个数有一个不一样
称为方法的重载
注:如果返回值类型不一样,方法名、参数类型、个数都一样,这种情况不是重载。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值