关闭

黑马程序员——让用户输入数组元素值的方法

标签: numberswindows phone.netc#手机string
447人阅读 评论(0) 收藏 举报

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

  看C#基础最后几个视频时有一道练习是要求用方法实现找出一个int类型数组中最大值和最小值。因为没有给定int类型数组,我就想到让用户来输入数组元素的值,然后找出其中最大和最小值,而且这也用一个方法来实现,只是不知道这样数组元素个数由用户输入来决定的有没其它问题,记得C语言中数组元素的个数在定义时就应该确定,可是写出来的代码这些编译和运行都没有问题,C#中数组定义时元素的个数是可以用变量的么,还是因为其它原因,看来值得探究一下。而且还有一个问题,就是返回数组的问题,我没有定义一个数组来接收方法返回的用户输入的数组,怎么就直接返回给了我传的参数数组了呢,我想这应该是传递的数组是引用类型的关系。代码如下:

namespace _03练习
{
    class Program
    {
        static void Main(string[] args)
        {
            int n;
            Console.WriteLine("请输入数组的元素个数!");
            while (true)
            {
                if(int.TryParse(Console.ReadLine(),out n))
                {
                   break;
                }
                else
                {
                    Console.WriteLine("您输入的不是数字,请重新输入!");
                }
            }

            int[] nums = new int[n];            
            Evaluation(nums);//调用Evaluation方法给数组元素赋值

            int max, min, sum;
            sum = Sum(nums, out max, out min);//调用Sum方法求数组元素的和,并返回其中最大值与最小值
            
            Console.WriteLine("数组元素的和为:{0},最大值为:{1},最小值为:{2}", sum, max, min);

            Console.ReagKey();
        }

        /// <summary>
        /// 让用户给一个整数数组赋值
        /// </summary>
        /// <param name="numbers">要赋值的数组</param>
        /// <returns>已赋值的数组</returns>
        public static int[] Evaluation(int[] numbers)
        {
            for (int i = 0; i < numbers.Length; i++)
            {
                Console.WriteLine("请输入{0}个数组元素的值!", i + 1);
                if(int.TryParse(Console.ReadLine(),out numbers[i])==false)
                {
                    Console.WriteLine("输入的不是数字,请重新输入!");
                    i--; 
                }
            }
            return numbers;
        }

        /// <summary>
        /// 求数组中所有元素的和
        /// </summary>
        /// <param name="numbers">数组</param>
        /// <param name="max">最大值</param>
        /// <param name="min">最小值</param>
        /// <returns>数组元素的和</returns>
        public static int Sum(int[] numbers, out int max, out int min)
        {
            int sum = 0;
            max = numbers[0];
            min = numbers[0];
            for (int i = 0; i < numbers.Length; i++)
            {
                sum += numbers[i];
                if (numbers[i] > max)
                {
                    max = numbers[i];
                }
                if (numbers[i] < min)
                {
                    min = numbers[i];
                }
            }
            return sum;
        }

     }
}


---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------详细请查看:http://net.itheima.com/

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2776次
    • 积分:78
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档