C#程序设计实验4 数组排序和计算

一、设计思想
创建一个空字符串,来接受输入的数据,对字符串进行数据处理,方法是以英文逗号为分隔符把字符串分成5个元素,对5个元素进行转化,如果可以转化为整数类型,放入数组,否则报错,利用try-catch进行异常处理,即被分割后的元(字符串类型)如果非整数不能转化为整数类型,会进入catch语句,提示非法输入,提供一个选择,按回车继续进行操作,其他键结束循环。
如果5个数都是合法整数,那么对他们进行遍历求和,等操作。
二、主要源代码
using System;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            //变量定义

            int Sum = 0;

            int[] Number = new int[5];

            string input = null;
            do
            {
                //输入
                Console.Write("\n请输入五位整数(以英文逗号分割):");

                input = Console.ReadLine();

                //数据处理

                Number = Data(input);

                if (Number == null)
                {
                    Console.Write("按enter键直接结束循环,按任意键继续循环:");
                    continue;
                }

                Array.Sort(Number);

                Console.Write("顺序输出为:");

                for (int i = 0; i < Number.Length; i++)
                {
                    Console.Write(Number[i]+"\t");
                    Sum += Number[i];
                }

                Console.Write("\n逆序输出为:");

                for (int i = 4; i >= 0; i--)
                {
                    Console.Write(Number[i] + "\t");
                }

                Console.WriteLine("\n和为:" + Sum);
                Console.WriteLine("平均值为:{0:F1}", (float)Sum/5);
                Console.WriteLine("最大值为:" + Number[4]);

                Console.Write("按enter键直接结束循环,按任意键继续循环:");
            } while (Console.ReadKey(true).Key != ConsoleKey.Enter);

            Console.WriteLine("循环结束");
        }
        //数据处理方法,把输入的字符串逐个判断是否为合法整数,是则放入数组
        static int[] Data(String input)

        {
            bool flag = true;
            //以逗号为分隔符拆分字符串放入数组,移除空白符
            string[] inputs = input.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

            int[] number = new int[5];

            if (inputs.Length != 5)
            {
                flag = false;
                Console.WriteLine("非法输入");
            }

            for (int i = 0; i< inputs.Length; i++)
            {
                try
                {
                    //分割后的字符转化为int放入数组,经验证,只有字符类型的整数才能转化,其他会报错进入catch语句
                    number[i] = int.Parse(inputs[i]);
                }
                //try中出现异常报错(input数组元素不是int类型),进入catch
                catch
                {
                    Console.WriteLine("非法输入");
                    flag = false;
                    break;
                }
            }

            if (flag)
            {
                return number;
            }
            else
            {
                return null;
            }

        }
    }
}


猜你喜欢

转载自blog.csdn.net/qq_62480054/article/details/131585501