题目(C#):
从键盘接收一行用空格分隔的5个整数值,将这5个数保存到一个具有5个元素的一-维数组中,分别输出正序和逆序排序的结果,并输出数组中元素的平均值和最大值,平均值保留小数点后1位。要求当输人非法数值时,提示重新输人;当直接按键时结束循环,退出程序。
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
{
number[i] = int.Parse(inputs[i]);
}
catch
{
Console.WriteLine("非法输入");
flag = false;
break;
}
}
if (flag)
{
return number;
}
else
{
return null;
}
}
}
}