Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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#_Arrays_Methods_Input - Fatal编程技术网

C# 如何显示数组的最大值和最小值

C# 如何显示数组的最大值和最小值,c#,arrays,methods,input,C#,Arrays,Methods,Input,首先,这是一个家庭作业,我有点麻烦,希望得到一些建议。到目前为止,我已经创建了这个应用程序,从用户那里获取10个输入值,并将它们存储到一个数组中。我将数组传递给SmallAndLarge方法,在该方法中,它显示使用Sort()终止10个值中的最小值和最大值,但现在我必须显示用户输入的10个值中的最小值和最大值,并且遇到了问题。任何帮助都会很好 还有一个问题,我注意到如果输入值1到10,当数组排序和显示时,10将在2之前,在1之后。为什么会这样 namespace SmallAndLarge {

首先,这是一个家庭作业,我有点麻烦,希望得到一些建议。到目前为止,我已经创建了这个应用程序,从用户那里获取10个输入值,并将它们存储到一个数组中。我将数组传递给SmallAndLarge方法,在该方法中,它显示使用Sort()终止10个值中的最小值和最大值,但现在我必须显示用户输入的10个值中的最小值和最大值,并且遇到了问题。任何帮助都会很好

还有一个问题,我注意到如果输入值1到10,当数组排序和显示时,10将在2之前,在1之后。为什么会这样

namespace SmallAndLarge
{
    class Program
    {
        static void Main()
        {
            int found = 0;
            string[] numbers = new string[10];
            for (int i = 0; i < numbers.Length; i++)
            {
                Console.Write("Enter ten numbers --> ");
                numbers[i] = Console.ReadLine();
            }
            SmallestAndLargest(numbers);



        }
        public static int SmallestAndLargest(string[] numbers1)
        {

            int x;
            Array.Sort(numbers1);
            for (x = 0; x < numbers1.Length; ++x)
                Console.Write("{0} ", numbers1[x]);
            return x;
        }

    }
}
namespace SmallAndLarge
{
班级计划
{
静态void Main()
{
int=0;
字符串[]数字=新字符串[10];
for(int i=0;i”;
数字[i]=Console.ReadLine();
}
小型和大型(数字);
}
公共静态int SmallestAndLargest(字符串[]numbers1)
{
int x;
Array.Sort(numbers1);
对于(x=0;x
您将数字作为字符串。这就解释了为什么
“10”
排在
“2”
之前,这与
“am”
按字母顺序排在
“i”
之前的原因相同。
“10”
的第一个字符是
'1'
,位于
'2'
之前

因此,在对数组排序或搜索max-og-min值之前,需要将字符串转换为某种数字类型。例如,它可以是
int
类型。您可以将它们保存在类型为
int[]
的数组中,而不是
string[]
的数组中

要将
Console.ReadLine
提供的
字符串转换为
int
,请使用
int.Parse
int.TryParse
方法的重载


如果允许用户键入非整数,如
3.14
,则可以使用
decimal
而不是
int
,将数字作为字符串。这就解释了为什么
“10”
排在
“2”
之前,这与
“am”
按字母顺序排在
“i”
之前的原因相同。
“10”
的第一个字符是
'1'
,位于
'2'
之前

因此,在对数组排序或搜索max-og-min值之前,需要将字符串转换为某种数字类型。例如,它可以是
int
类型。您可以将它们保存在类型为
int[]
的数组中,而不是
string[]
的数组中

要将
Console.ReadLine
提供的
字符串转换为
int
,请使用
int.Parse
int.TryParse
方法的重载


如果允许用户键入非整数,如
3.14
,则可以使用
decimal
而不是
int

,看起来您正在迭代数组。我会这样做:

  • 创建两个int变量(分别为小变量和大变量)
  • 将它们都设置为数组的第一个元素
  • 通过元素循环
  • 对于每个元素[i],(使用
    int.Parse()
    或等效工具将元素转换为int)
    如果元素[i]>大,则大=元素[i];如果元素[i]
    如果只需要min和max,则不需要排序。我会将int存储到和int数组中,而不是字符串数组,在用户输入值时进行转换。这样,当输入无效值时,您的程序就会立即失败。

    看起来您正在对数组进行迭代。我会这样做:

  • 创建两个int变量(分别为小变量和大变量)
  • 将它们都设置为数组的第一个元素
  • 通过元素循环
  • 对于每个元素[i],(使用
    int.Parse()
    或等效工具将元素转换为int)
    如果元素[i]>大,则大=元素[i];如果元素[i]
    如果只需要min和max,则不需要排序。我会将int存储到和int数组中,而不是字符串数组,在用户输入值时进行转换。这样,当输入无效值时,您的程序将立即失败。

    您可以使用
    Linq
    来使用Min/Max来强制转换并返回最大/最小的

    string[] numbers = new string[] {"1","2","3","15","30","7" };
    
    var converted = numbers.Select(int.Parse);
    int largest = converted.Max();
    int smallest = converted.Min();
    

    您可以使用
    Linq
    来使用Min/Max来强制转换和返回最大/最小的

    string[] numbers = new string[] {"1","2","3","15","30","7" };
    
    var converted = numbers.Select(int.Parse);
    int largest = converted.Max();
    int smallest = converted.Min();
    

    这里有一个非常简单但冗长的答案。将值添加到列表中,并使用最小/最大返回值。您已经在使用for循环遍历列表,没有理由重复两次

        static void Main(string[] args)
        {
            string[] StringValues = new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10","Not Number" };
            List<int> ConvertedStrings = new List<int>();
    
            foreach (string S in StringValues)
            {
                ConvertedStrings = ParseStringToInt(S, ConvertedStrings);
            }
            Console.WriteLine();
            Console.WriteLine("Max Value: " + ConvertedStrings.Max().ToString());
            Console.WriteLine("Min Value: " + ConvertedStrings.Min().ToString());
            Console.ReadLine();
        }
    
        static private List<int> ParseStringToInt(string Input, List<int> ConvertedStrings)
        {
            int ConvertedValue = 0;
    
            if (int.TryParse(Input, out ConvertedValue))
            {
                Console.WriteLine(Input + " sucessfully parsed and added...");
                ConvertedStrings.Add(ConvertedValue);
                return ConvertedStrings;
            }
            else
            {
            Console.WriteLine(Input + " failed to parse...");
            }
    
            return ConvertedStrings;
        }
    
    static void Main(字符串[]args)
    {
    字符串[]StringValues=新字符串[]{“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“非数字”};
    List ConvertedStrings=新列表();
    foreach(StringValues中的字符串S)
    {
    ConvertedStrings=ParseStringToInt(S,ConvertedStrings);
    }
    Console.WriteLine();
    WriteLine(“最大值:+ConvertedStrings.Max().ToString());
    WriteLine(“最小值:+ConvertedStrings.Min().ToString());
    Console.ReadLine();
    }
    静态私有列表ParseStringToInt(字符串输入,列表转换字符串)
    {
    int ConvertedValue=0;
    if(int.TryParse(输入,输出转换值))
    {
    WriteLine(输入+“成功解析并添加…”);
    ConvertedStrings.Add(ConvertedValue);
    返回转换字符串;
    }
    其他的
    {