Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#找到最大的数字_C#_Numbers - Fatal编程技术网

C#找到最大的数字

C#找到最大的数字,c#,numbers,C#,Numbers,这是我第一次使用c#,所以我对它不是很熟悉。我想创建一个简单的程序,找到最大的数字,如果我有用户输入3个数字。我只需要知道在代码中输入什么,因为我不是很确定 有Linq扩展方法。它适用于所有常见的数字类型(int、double等)。由于它适用于实现IEnumerable的任何类,因此它适用于所有常见容器,如数组T[],List 要使用它,您需要在C#文件的开头有using System.Linq,并且需要引用System.Core程序集。默认情况下,在新项目(C#3或更高版本)上都会执行这两项操

这是我第一次使用c#,所以我对它不是很熟悉。我想创建一个简单的程序,找到最大的数字,如果我有用户输入3个数字。我只需要知道在代码中输入什么,因为我不是很确定

有Linq扩展方法。它适用于所有常见的数字类型(int、double等)。由于它适用于实现
IEnumerable
的任何类,因此它适用于所有常见容器,如数组
T[]
List

要使用它,您需要在C#文件的开头有
using System.Linq
,并且需要引用
System.Core
程序集。默认情况下,在新项目(C#3或更高版本)上都会执行这两项操作


您还可以使用
Math.Max(a,b)
,它只适用于两个数字。或者自己写一个方法。这也不难。

使用
Math.Max

int x = 3, y = 4, z = 5;
Console.WriteLine(Math.Max(Math.Max(x, y), z));
您可以使用该方法返回最多两个数字,例如for
int

int Max=Math.Max(number1,Math.Max(number2,number3))


还有LINQ中的方法,您可以在任何
IEnumerable

上使用该方法,如果您的数字是a、b和c,则:

    int a = 1;
    int b = 2;
    int c = 3;

    int d =  a > b ? a : b;
    return c > d ? c : d;

这可能会变成一个“我们可以用多少种不同的方式来做这件事”类型的问题

我也需要找到一种方法来做到这一点,使用来自不同地方的数字,而不是在一个集合中。我确信有一种方法可以在c#中实现这一点……尽管从外观上看,我把我的语言弄糊涂了

using System;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        int[] numbers = { 3, 9, 5 };
        int biggestNumber = numbers.Max();
        Console.WriteLine(biggestNumber);
        Console.ReadLine();
    }
}
无论如何,我最后写了两个通用的方法来做这件事

    static T Max<T>(params T[] numberItems)
    {
        return numberItems.Max();
    }

    static T Min<T>(params T[] numberItems)
    {
        return numberItems.Min();
    }

下面是查找最大/最大数字的简单逻辑

输入:11,331111,4,0输出:1111

namespace PurushLogics
{
    class Purush_BiggestNumber
    {
        static void Main()
        {
            int count = 0;
            Console.WriteLine("Enter Total Number of Integers\n");
            count = int.Parse(Console.ReadLine());

            int[] numbers = new int[count];

            Console.WriteLine("Enter the numbers"); // Input 44, 55, 111, 2 Output = "111"
            for (int temp = 0; temp < count; temp++)
            {
                numbers[temp] = int.Parse(Console.ReadLine());
            }

            int largest = numbers[0];
            for (int big = 1; big < numbers.Length; big++)
            {
                if (largest < numbers[big])
                {
                    largest = numbers[big];
                }
            }
            Console.WriteLine(largest);
            Console.ReadKey();
        }
    }
}
名称空间PurushLogics
{
类Purush_BiggestNumber
{
静态void Main()
{
整数计数=0;
Console.WriteLine(“输入整数总数\n”);
count=int.Parse(Console.ReadLine());
int[]数字=新的int[计数];
Console.WriteLine(“输入数字”);//输入44、55、111、2输出=“111”
对于(int-temp=0;temp
System.Linq程序集中有最大扩展方法。@豪尔赫:不,不是。它在
System.Linq
命名空间中,但在
System.Core
assemblySystem中。Core是程序集,命名空间是System.Linq。如果我想把它用作windows怎么办application@Oliver:只需将结果分配给控件属性或变量,而不是将其打印到控制台:
TextBox1.Text=Math.Max(Math.Max(x,y),z).ToString()
则不使用Console.WriteLine,而是将其分配给标签的文本。或者使用debug.write或trace.WriteE写入Visual Studio的输出窗口。如果希望返回的不是最大值,而是具有最大值的字段,该怎么办?因此,我可以返回“z”而不是“5”。“我只需要知道在代码“lolCheck this>中输入什么”有点难读。您可以移动表达式
a>b吗?a:b
转换为助手方法。在实际代码中,您当然会使用内置方法,但对于初学者来说,了解如何自己实现
Math.Max
,仍然是一种教育。
    int intTest = Max(1, 2, 3, 4);
    float floatTest = Min(0f, 255.3f, 12f, -1.2f);
namespace PurushLogics
{
    class Purush_BiggestNumber
    {
        static void Main()
        {
            int count = 0;
            Console.WriteLine("Enter Total Number of Integers\n");
            count = int.Parse(Console.ReadLine());

            int[] numbers = new int[count];

            Console.WriteLine("Enter the numbers"); // Input 44, 55, 111, 2 Output = "111"
            for (int temp = 0; temp < count; temp++)
            {
                numbers[temp] = int.Parse(Console.ReadLine());
            }

            int largest = numbers[0];
            for (int big = 1; big < numbers.Length; big++)
            {
                if (largest < numbers[big])
                {
                    largest = numbers[big];
                }
            }
            Console.WriteLine(largest);
            Console.ReadKey();
        }
    }
}