2014-11-05 59 views
-1

我制作了一个程序,要求您输入少于100的数字,然后输入您输入的数字,并告诉您哪些是有效的条目。我想要添加的功能是采用这些有效条目并查找最小和最大的数字。找到最小值和最大值后,我希望它们显示在“无效条目:”的位置。任何人都可以帮我添加这个?如何添加查找最大值和最小值的函数并显示它们

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    using System.Threading.Tasks; 

    namespace Programming_Exercise_2_Chapter_6 
    { 
     class Program 
     { 
      static void Main(string[] args) 
      { 
       string answer; 
       do 
       {  
        Console.Clear(); 
        Header(); 
        int number; 
        string indata; 
        List<int> validEntries = new List<int>(); 
        List<string> invalidEntries = new List<string>(); 

        while (true) 
        { 
         Console.WriteLine("Insert numbers less than 100: "); 
         indata = Console.ReadLine(); 

         if (Int32.TryParse(indata, out number)) 
         { 
          if (number <= 100 && number > 0) 
           validEntries.Add(number); 

          else 
           invalidEntries.Add(number.ToString()); 
         } 
         else 
          invalidEntries.Add(indata); 

         Console.WriteLine("Press N to stop. Press enter to continue."); 
         indata = Console.ReadLine(); 
         Console.Clear(); 

         if (indata == "n"|| indata == "N") 
          break; 
        }    
        DisplayEntries(validEntries, invalidEntries); 
        Console.ReadLine(); 
        Console.WriteLine("Do you want to try again?(Enter Y for Yes, or N for  No)"); 
        answer = Console.ReadLine(); 
       } 
       while (answer == "Y" || answer == "y"); 
      } 
      static void DisplayEntries(List<int> validEntries, List<string> invalidEntries) 
      { 
       Console.WriteLine("Your valid entries were: "); 
       foreach (int i in validEntries) 
        Console.WriteLine(i); 

       Console.WriteLine(); 

       Console.WriteLine("Your invalid entries were: "); 
       foreach (string s in invalidEntries) 
        Console.WriteLine(s); 
      } 
      static void Header() 
      { 
       Console.WriteLine("\tNumber Validation App"); 
       Console.WriteLine("Please enter a few numbers less than 100.\nValid entries  will be displayed."); 
       Console.WriteLine(""); 
      } 
     } 
    } 
+1

请具体说明。你是(假设)向你无法工作的代码寻求帮助,而不是简单地要求某人为你编写代码。因此,不要显示所有的UI代码(不相关的代码),而是显示需要输入并尝试查找所需值的代码。解释你做了什么,输出是什么,以及为什么这与你想要的不同。有关更多详细信息,请参阅http://stackoverflow.com/help/mcve – 2014-11-05 04:47:50

+0

无需在此处发布整个代码。更好地发布一个方法! – Bhagavan 2014-11-05 04:50:50

回答

0

如果我理解你的问题,你想要从你的整数列表中最小和最大的条目? 在这种情况下,你可以简单地对列表进行排序和检索排序列表的第一个/最后一个条目:

validEntries.Sort(); 
var smallest = validEntries.First(); 
var highest = validEntries.Last(); 

是不是你想要的?

0

所以你有一个整数列表(数字)。范围在1到100之间。所有这些都存储在validEntries中。 所以你必须仔细检查列表中的所有数字,当你找到一个较高的数字并将其与列表中的下一个数字进行比较时。

int highest_nr = 0; 
int lowest_nr = 100; 
foreach (int i in validEntries) 
{ 
    if (i < lowest_nr) 
     lowest_nr = i 
    if (i > highest_nr) 
     highest_nr = i; 
    Console.WriteLine(i); 
} 
Console.WriteLine("Highest number = " + highest_nr.ToString()); 
Console.WriteLine("Lowest number = " + lowest_nr.ToString()); 
0

validEntries.Max()validEntries.Min()将让你的最高和最低值分别。

 Console.WriteLine("Your valid entries were: "); 
     foreach (int i in validEntries) 
      Console.WriteLine(i); 

     Console.WriteLine(); 

     Console.WriteLine("Your invalid entries were: "); 
     foreach (string s in invalidEntries) 
      Console.WriteLine(s); 

将被写入(我换成你的foreach):

  Console.WriteLine("Your valid entries were: "); 
      Console.WriteLine(string.Join(Environment.NewLine, validEntries)); 

      Console.WriteLine(); 

      Console.WriteLine("Your invalid entries were: "); 
      Console.WriteLine(string.Join(Environment.NewLine, invalidEntries)); 

      Console.WriteLine(); 
      Console.WriteLine("Min:{0} Max:{1}",validEntries.Min(),validEntries.Max()); 
相关问题