.net基础笔记7

1. 数组的求和求平均数求最大值最小值以及排序

例如:

 //求和,求平均值,找最大值,找最小值,并排序后按升序输出

            int sum = 0;

            int[] a = { 3, 4, 5, 364, 6, 262, 626, 6, 2, 62 - 4325, 2525, -5254, 523, -5242, 231424, 4125432, 544, -98392 };

            int max = a[0];

            int min = a[0];

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

            {

                sum += a[i];//求和

                if (a[i] > max)//求最大值

                {

                    max = a[i];

                }

                if (a[i] < min)//求最小值

                {

                    min = a[i];

                }

            }

            Console.WriteLine("这个数组的和为:{0}", sum);

            Console.WriteLine("这个数组的平均值为:{0}", sum / a.Length);

            Console.WriteLine("这个数组的最大值为:{0}", max);

            Console.WriteLine("这个数组的最小值为:{0}\n", min);

 

            Console.WriteLine("输出没有排序的这个数组:");

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

            {

                Console.Write(a[i]);

                Console.Write("\t");

            }

 

            Console.WriteLine("\n\n升序排序:");

            Array.Sort(a);//升序排序

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

            {

                Console.Write(a[i]);

                Console.Write("\t");

            }

 

            Console.WriteLine("\n\n降序排序:");

            Array.Reverse(a);//降序排序(反转升序排序)

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

            {

                Console.Write(a[i]);

                Console.Write("\t");

            }

 

            Console.ReadKey();

结果:

 

关于2个数组排序的方法:

Array.Sort(a);//升序排序

Array.Reverse(a);//反转数组元素(反转升序排序后变为降序排序)

2. 冒泡排序法

1)从小到大排序叫升序排序,用>号进行比较,成立则交换

2)从大到小排序叫降序排序,用<号进行比较,成立则交换

3)原理:

要进行升序排序的数:9 8 7 6 5 4 3 2 1 0

0第1趟:8 7 6 5 4 3 2 1 0 9 第1遍,9次比较,最大数到了最后一位

1第2趟:7 6 5 4 3 2 1 0 8 9 第2遍,8次比较,最大数到了倒数第2位

2第3趟:6 5 4 3 2 1 0 7 8 9 第3遍,7次比较,最大数到了倒数第3位

3第4趟:5 4 3 2 1 0 6 7 8 9 第4遍,6次比较,最大数到了倒数第4位

4第5趟:4 3 2 1 0 5 6 7 8 9 第5遍,5次比较,最大数到了倒数第5位

5第6趟:3 2 1 0 4 5 6 7 8 9 第6遍,4次比较,最大数到了倒数第6位

6第7趟:2 1 0 3 4 5 6 7 8 9 第7遍,3次比较,最大数到了倒数第7位

7第8趟:1 0 2 3 4 5 6 7 8 9 第8遍,2次比较,最大数到了倒数第8位

8第9趟:0 1 2 3 4 5 6 7 8 9 第9遍,1次比较,最大数到了倒数第9位

10个数共排了10-1趟,设t为趟数,第t趟比较了10-t次 

设共有n个数,i为循环变量,i控制趟数,n个数要排n-1趟,循环次数为i=t-1,

那么第i趟要比较n-1-i次

用循环就是:

 

 

4)例如:

 //输入一个数组进行冒泡排序

            int ArrayLenth;

            while (true)

            {

                Console.WriteLine("请输入这个数组的长度:");

                try

                {

                    ArrayLenth = Convert.ToInt32(Console.ReadLine());

                    int[] Array = new int[ArrayLenth];

                    int ArrayYuansu;

 

                    for (int i = 0; i < Array.Length; i++)//输入数组的元素

                    {

                        while (true)

                        {

                            Console.WriteLine("请输入数组的第{0}个元素:", i + 1);

                            try

                            {

                                ArrayYuansu = Convert.ToInt32(Console.ReadLine());

                                Array[i] = ArrayYuansu;

                                break;

                            }

                            catch

                            {

                                Console.WriteLine("请输入整数作为数组的元素:");

                                continue;

                            }

                        }

                    }

 

                    Console.WriteLine("\n数组的元素为:\n");

                    for (int i = 0; i < Array.Length; i++)//输出数组的元素

                    {

                        Console.Write(Array[i] + "\t");

                    }

 

                    //数组升序冒泡法

                    int temp;

                    for (int j = 0; j < Array.Length - 1; j++)//数组比较的趟数

                    {

                        for (int k = 0; k < Array.Length - 1 - j; k++)//数组中元素大小比较的次数

                        {

                            if (Array[k] > Array[k + 1])

                            {

                                temp = Array[k];

                                Array[k] = Array[k + 1];

                                Array[k + 1] = temp;

                            }

                        }

                    }

 

                    //升序排序后的数组

                    Console.WriteLine("\n输出升序排序后数组的元素:\n");

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

                    {

                        Console.Write(Array[i] + "\t");

                    }

 

                    //数组降序冒泡法

                    int temp1;

                    for (int j = 0; j < Array.Length - 1; j++)//数组比较的趟数

                    {

                        for (int k = 0; k < Array.Length - 1 - j; k++)//数组中元素大小比较的次数

                        {

                            if (Array[k] < Array[k + 1])

                            {

                                temp1 = Array[k];

                                Array[k] = Array[k + 1];

                                Array[k + 1] = temp1;

                            }

                        }

                    }

 

                    //降序排序后的数组

                    Console.WriteLine("\n输出降序排序后数组的元素:\n");

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

                    {

                        Console.Write(Array[i] + "\t");

                    }

                    break;

                }

                catch

                {

                    Console.WriteLine("请输入一个正整数作为数组的长度:");

                    continue;

                }

            }

            Console.ReadKey();

 

结果:

 

 

3. 函数(方法)

方法的好处:

1)方法就是讲一堆代码进行重用的机制

2)一个方法实现一个功能

 

方法的声明语法:

[访问修饰符] [static] 返回值类型 方法名([参数列表])

{

方法体;

}

访问修饰符可以省略,也可以写public

static:可以省略。没有static的方法叫实例方法,有static的方法叫静态方法。我们现在学习的方法都是静态方法。

返回值类型:如果没有返回值,就写void表示没有返回值类型。

方法名称:自己起名字,但是要符合变量的命名规则。

():注意:不管小括号里有没有参数列表,都不能省略。

参数列表:可省略。先学习没有参数列表,所以先都省略。

{}:表示这个方法的开始与结束,这对大括号里就是方法体。方法体中的内容可以参考main方法。

方法的调用:

在静态方法中调用静态方法:类名.方法名([参数]);

如果在本类中调用方法,类名可以省略。

局部变量:定义在方法中的变量叫局部变量。

局部变量的作用域:从定义到定义结束的那个语句块(大括号)结束为止,这个变量就不能用。

main方法叫调用者,自己写的方法叫被调用者。当被调用者想得到调用者的变量值时,有2种解决方法:

1)把变量定义到方法之外,那么定义在类中的又叫这个变量做“字段”,每个字段都可以被这个类中的所有方法访问到(静态方法只能访问静态字段)。

2)通过参数把值传到被调用者的方法中

 

posted @ 2012-02-23 11:53  何冬冬  阅读(202)  评论(0编辑  收藏  举报