2017-04-21 204 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

是的,但他原来的代码是不正确的。问题是关于在数组中找到最大值,并且您的答案会忽略第一项。为什么不只是发布正确的解决方案? –