【求助】再求更简洁的代码!看似简单的 FOR,却让我伤透脑筋!
一、题目编一个程序,用for循环语句,不用数组,从键盘输入5个浮点数,要求找出最大数和最小数。
二、代码
static void Main()
{
float m=0, n=0, temp=0, max=0, min=0;
for (int i = 1; i <= 5; i++)
{
switch (i)
{
case 1:
Console.WriteLine("请输入第{0}个数:", i);
m = float.Parse(Console.ReadLine());
break;
case 2:
Console.WriteLine("请输入第{0}个数:", i);
n = float.Parse(Console.ReadLine());
break;
}
if (i==2)
{
max = Math.Max(m, n);
min = Math.Min(m, n);
}
switch (i)
{
case 3:
case 4:
case 5:
Console.WriteLine("请输入第{0}个数:", i);
temp = float.Parse(Console.ReadLine());
max = Math.Max(max, temp);
min = Math.Min(min, temp);
break;
}
}
Console.WriteLine("最大数是:{0}", max);
Console.WriteLine("最小数是:{0}", min);
Console.ReadLine();
}
三、困惑
上面这个代码能实现题目的要求,但我总觉得太繁琐。在编写这个控制台程序时,困惑如下:
1)输入5个数据,要实现比较,必须让第一个数据赋值于M,让第二个数据赋值于N,然后再进行输入一个比较一个;有没有这样的比较法:输入一个,比较一个。
2)在控制台编写中,经常做到输入X个数据,找出最大值和最小值,或者次大数或次小数,用数组固然快捷,可题目要求却不能用。又要循环输入,有没有一边输入,一边比较的算法编写。
总之,让代码更简洁,更简化,这是编写代码的最高追求!
希望大侠们给予帮助!谢谢!