2017-04-21 165 views
0

作爲學校的一部分,我的任務之一是寫10個的碼約10不同的搜索圖案等在陣列中找到的最大值

對於這一個,我需要使用到線性搜索在定義的數組中找到最高和最低值,然後顯示找到該值的次數。

繼承人的代碼,我想出了:

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

namespace Maxvaluefinder 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var array = [1, 31, 10, 9, 420, -5, 77, 420, 300, 99]; //Sets up the array 
      var maxvalue = 0; //Establishes variables for maximum value and the counter of maximum value. 
      var maxvaluecount = 0; 

      for (i = 1; i < array.Length; i++) 
      { 
       if (array[i] > maxvalue) 
       { 
        maxvalue = array[i]; 
        maxvaluecount = 1; 
       } 
       if (array[i] == maxvalue) 
       { 
        maxvaluecount = maxvaluecount + 1; 
       } 
      } 

      Console.WriteLine("The highest number in this array was" + maxvalue + "which appeared a total of" + maxvaluecount + "times."); // Prints the final outcome. 
     } 
    } 
} 

截至目前,我不是100%確定如何了 「(I = 1;我< intArray.Length;我++)」 部分作品,'我'位'不存在於當前的情況下'

請幫忙?

此外,有點不相關:我如何測試在Microsoft Visual Studio中運行代碼?

謝謝:)

+0

你的第二個問題:按F5。順便說一下,數組索引從零開始,所以你需要'for(var i = 0; i

+1

@ O.Jones:當然,我們應該先創建一個C#控制檯項目,然後將這些代碼放入上述項目的文件中。 –

+2

可能不是你的老師想要的,但也有'array.Max()'.... – BradleyDotNET

回答

1

1問題:你需要聲明你ifor循環,如果你只想使用i裏面。否則,您需要在for循環之前聲明i

for (var i = 1; i < array.Length; i++) 

這就是你如何創建新的int陣列

var array = new int[] { 1, 31, 10, 9, 420, -5, 77, 420, 300, 99}; 

第二個問題:進入VS,創建新的控制檯項目,粘貼代碼下main功能並按下F5

+1

我建議改變_你需要聲明你的'我'裏面for循環_ **到** - > _你應該聲明你的'我'在裏面for loop_ –

+0

哇,那很簡單。謝謝!呃,最後一件事情是,「var array = [1,31,10,9,420,-5,77,420,300,99]; //設置數組」導致第一個錯誤[。任何想法爲什麼? :p(line 13) –

+0

@QuinnosRomynos在第二個代碼 –

1

您需要在使用它之前聲明一個變量。嘗試:

for (int i = 1; i < array.Length; i++){...} 

for循環的工作原理如下:

  1. 你聲明一個控制變量,在這種情況下,你給它分配的循環檢查初始值1
  2. 的在每個循環的開始,如果其結束條件滿足,在給定的情況下i < array.Length
  3. 在每個循環結束時,控制變量根據語法的最後部分進行更新i++,這相當於i = i+1

另外,我不知道你是否知道,但在C#中的數組是從零開始的索引,這意味着,在陣列中的第一個元素實際上是指數爲零。所以你可能想要初始化:int i = 0

+0

你爲什麼從'1'開始''而不是'0'?這個答案忽略了數組中的第一項... –

+0

因爲他的例子已經在1.我沒有看過語義,只是語法。我會添加一個提醒。 –

+0

是的,但他原來的代碼是不正確的。問題是關於在數組中找到最大值,並且您的答案會忽略第一項。爲什麼不只是發佈正確的解決方案? –