【问题标题】:Searching a random Array for a specific value在随机数组中搜索特定值
【发布时间】:2013-02-04 15:01:21
【问题描述】:

您好,有人告诉我“编写代码来确定任务 7 的数组(随机数组)中是否包含一个值,例如“5”,方法是从末尾开始向后遍历数组并比较搜索value 与数组中的值。搜索后,如果找到该值,则打印“已找到该值”,否则打印“未找到该值”。”

我了解随机数组的创建,但我被困在如何通过它向后工作并找到特定值。

这是目前为止的代码

class Program
{
    static void Main(string[] args)
    {
        int[] myArray = new int[10];
        Random rand = new Random();

        for (int i = 0; i < myArray.Length; i++)
        {
            myArray[i] = rand.Next(19);
        }

    }
}

}

【问题讨论】:

  • “我被困在如何通过它向后工作并找到特定值。”换句话说,你被整个作业问题困住了吗? :) 这可能就是重点:让您弄清楚如何解决它。友好的建议:将来,试着自己花一两个小时弄清楚。如果您无法弄清楚,请尝试在 Google 周围搜索,看看 Google 是否可以帮助您弄清楚。我的两分钱..

标签: c# arrays for-loop


【解决方案1】:

使用从最大到最小索引开始的循环。

 bool found = false;
 for (int i = myArray.Length - 1; i >=0 ; i--) 
     if(myArray[i] == 5)
        found = true;
 if(found)
 {

 }
 else
 {

 }

【讨论】:

    【解决方案2】:

    要向后退,只需使用带有迭代器的 for 循环到 i--

    for (int i = myArray.Length - 1; i >= 0; i---)
    {
        if(// Check if myArray[i] equals the value to find)
        {
             // If it is the case, you can get out from the for loop with break
             break;
        }
    }
    

    for 循环分为 4 个部分:

    for (initializer; condition; iterator)
        body
    
    1. initializer 在循环中的第一次迭代之前执行(这里您要从数组中的最后一个索引开始:myArray.Length - 1
    2. 每次迭代都会评估condition,如果这个条件为真,那么它会进入3(你想留在for循环,而i &gt;= 0),否则它退出for循环
    3. 每次满足条件的迭代都会执行body
    4. iterator 被执行(这里你想后退你想减少i
    5. 然后回到2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多