0

我是编程新手,我想编写一个 C# 控制台应用程序,其中用户输入至少四个或更多数字(例如 5、2、45、39...),应用程序告诉越来越小(即 2 <5<39<45... 或类似的东西)。

我正在尝试 if/else 条件,但这是为 3 个输入编写的,对于超过 3 个输入,由于 if/else 条件,程序变得太长。

{
        double A, B, C;

        Console.WriteLine("input Three Numbers and Press Enter after each.");
        A = Convert.ToDouble(Console.ReadLine());
        B = Convert.ToDouble(Console.ReadLine());
        C = Convert.ToDouble(Console.ReadLine());

        if (A < B && B < C)
            Console.WriteLine(A + " < " + B + " < " + C);
        else if (A < C && C < B)
            Console.WriteLine(A + " < " + C + " < " + B);
        else if (B < A && A < C)
            Console.WriteLine(B + " < " + A + " < " + C);
        else if (B < C && C < A)
            Console.WriteLine(B + " < " + C + " < " + A);
        else if (C < A && A < B)
            Console.WriteLine(C + " < " + A + " < " + B);
        else if (C < B && B < A)
            Console.WriteLine(C + " < " + B + " < " + A);
    }
4

4 回答 4

1

在 C# 中,您可以使用sort方法对数组进行排序。Array.Sort对数组中的元素进行排序。它处理不同类型的元素,包括字符串和整数。

int[] values = { 5, 2, 45, 39 };
Array.Sort(values);
foreach (int value in values)
{
    Console.Write(value);
    Console.Write('<');
}
于 2013-10-01T09:48:00.477 回答
0

这很简单。如果您为您的值使用列表,您可以使用扩展名 Min 和 Max for List<>。

        List<int> intList = new List<int>();
        intList.Add(1);
        intList.Add(-1);
        intList.Add(3);
        intList.Add(7);
        intList.Add(4);
        int minValue = intList.Min();
        int maxValue = intList.Max();

如果您使用的是数组,您还可以使用以下扩展方法:

        int[] intArray = new int[] { 1, -1, 3, 7, 4 };
        int minValue = intArray.Min();
        int maxValue = intArray.Min();

只要记住添加 using System.Linq;

于 2013-10-01T09:50:31.337 回答
0

我已经在你的帮助下解决了。谢谢大家。

{
        double A, B, C, D;
        Console.WriteLine("input Four Numbers and Press Enter after each.");
        A = Convert.ToDouble(Console.ReadLine());
        B = Convert.ToDouble(Console.ReadLine());
        C = Convert.ToDouble(Console.ReadLine());
        D = Convert.ToDouble(Console.ReadLine());

        double[] values = { A, B, C, D };
        Array.Sort(values);
        int count = 1;
        foreach (double value in values)
        {
            Console.Write(value + " ");
            if (count != values.Length)
            {
                Console.Write("< ");
            }
            count++;
        }
于 2013-10-04T15:59:24.350 回答
0

根据我对问题的理解,您尝试解决的程序可以通过应用一种排序算法(http://en.wikipedia.org/wiki/Sorting_algorithm)来解决。

有几种方法可以解决这个特定问题,例如冒泡排序(http://en.wikipedia.org/wiki/Bubble_sort)、堆排序(http://en.wikipedia.org/wiki/Heapsort)等。

我建议您在最终确定您的解决方案之前,仔细阅读上述所有算法并进行深入研究。

由于您是编程新手,因此将上述算法与您自己的程序一起应用将有助于您学习很多东西。

顺便说一句,C# 提供了一个名为Array.Sort(numbers)的自动预定义函数用于排序。

于 2013-10-01T09:51:07.853 回答