查找数组中的最大值

时间:2017-04-21 23:50:39

标签: c# arrays

作为学校的一部分,我的任务之一是编写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%肯定“for(i = 1; i&lt; intArray.Length; i ++)” 部分工作,'i'位'在当前上下文中不存在

请帮帮忙?

另外,有些不相关:如何测试在microsoft visual studio中运行代码?

谢谢:)

2 个答案:

答案 0 :(得分:1)

第一个问题:如果您只想在其中使用i,则需要在for圈内声明i。否则,您需要在i循环之前声明for

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 :(得分:1)

您需要先声明变量才能使用它。试试:

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

for循环的工作原理如下:

  1. 您声明一个控制变量,在本例中为 i ,您为其指定起始值1.
  2. for循环检查每个循环的开始是否满足其结束条件,在给定的情况下i < array.Length
  3. 在每个循环结束时,控制变量会根据语法i++的最后一部分进行更新,这相当于i = i+1
  4. 另外,我不确定你是否知道这一点,但是在C#数组中是从零开始索引的,这意味着数组中的第一个元素实际上是索引零。所以你可能想要初始化:int i = 0