注册 登录
编程论坛 C# 论坛

还有更简单的吗?求教

lxsxd 发布于 2014-05-13 11:03, 598 次点击
1、题目:输入四个整数,求出最大值和最小值。
2、代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace my
{
    class Program
    {
        static void Main()
        {
            
            Console.WriteLine("计算器开始工作,欢迎使用!");
            Console.WriteLine("--------------------------");
            double max, min, x1, x2, x3, x4;
            Console.WriteLine("请输入第1个整数:");
            x1 = double.Parse(Console.ReadLine());
            Console.WriteLine("请输入第2个整数:");
            x2 = double.Parse(Console.ReadLine());
            Console.WriteLine("请输入第3个整数:");
            x3 = double.Parse(Console.ReadLine());
            Console.WriteLine("请输入第4个整数:");
            x4 = double.Parse(Console.ReadLine());

            if (x1 < x2)
            {
                max = x2; min = x1;
            }
            else
            {
                max = x1; min = x2;
            }
            if (x3 > max)
            {
                max = x3;
            }
            else if (x3 < min)
            {
                min = x3;
            }
            else
            {
                ;
            }

            if (x4 > max)
            {
                max = x4;
            }
            else if (x4 < min)
            {
                min = x4;
            }
            else
            {
                ;
            }

            Console.WriteLine("四个数中,最大的数是{0}\t最小的数是{1}",max,min);

            Console.WriteLine("--------------------------------------");   
                    Console.WriteLine("计算器已经退出,谢谢使用!!");
            Console.WriteLine("--------------------------------------");

            Console.ReadLine();
        }
              
    }
}
3、困惑:相关数组还没有学到,不用数组,程序代码还能更简洁吗?或者算法还能更简洁?
6 回复
#2
asdfv632014-05-13 13:37
double max=Math.Max(Math.Max(Math.Max(x1,x2),x3),x4);//最大值
 double min=Math.Min(Math.Min(Math.Min(x1,x2),x3),x4);//最小值
#3
xydddaxia2014-05-13 15:47
程序代码:

int len = 4;//要比较的数字个数
double max = 0, min = 0;
double[] x = new double[len];
for (int i = 0; i < len; i++)
{
    Console.WriteLine("请输入第{0}个整数:", i + 1);
    x[i] = double.Parse(Console.ReadLine());
}
foreach (double item in x)
{
    max = Math.Max(max, item);
    min = Math.Min(min, item);
}
Console.WriteLine("{0}个数中,最大的数是{1}\t最小的数是{2}", len, max, min);


[ 本帖最后由 xydddaxia 于 2014-5-13 15:48 编辑 ]
#4
lxsxd2014-05-13 17:24
感谢信
------
    首先,非常感谢asdfv63和xydddaxia两位大侠朋友!
    可以肯定,两位朋友的代码都比原始代码简洁。根据不用数组的要求,那么asdfv63比xydddaxia更符合题意。
    新的困惑是:
    两位大侠朋友都使用了Math.Max(a, b)和Math.min(a, b)的语句,用于选出最大值和最小值。这个知识点,我之《C#程序设计使用教程》中没有介绍,是否有专门的书籍介绍这样的知识点??
    如果有这样的书籍,请推荐一下,谢谢!
#5
跳过去2014-05-13 23:41
#6
asdfv632014-05-14 08:14
Math是个类,里面封装了很多个数学上的方法的。可以直接MSDN上查找看看的。
#7
xydddaxia2014-05-14 09:08
回复 4 楼 lxsxd
http://msdn.
1