【问题标题】:Return the biggest number in an array [duplicate]返回数组中的最大数[重复]
【发布时间】:2020-04-15 20:53:00
【问题描述】:

我的代码中&& 的完美更改是什么?我真的不明白如何解决它。这是我到目前为止的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class A3 : MonoBehaviour
{

    int[] arr = new int[3] { -7, 2, 6 };

    int reBig ()
    {
        if (arr[0] > arr[1] && arr[2])
        {
            return (arr[0]);
        }
        else if (arr[1] > arr[0] && arr[2])
        {
            return (arr[1]);
        }
        else if (arr[2] > arr[0] && arr[1])
        {
            return (arr[2]);
        }

    } 

    // Start is called before the first frame update
    void Start()
    {
        print(reBig()); 
    }

    // Update is called once per frame
    void Update()
    {

    }
}

【问题讨论】:

  • 试试arr.Max();
  • @ja72 这看起来像是家庭作业,他不太可能被允许使用它。

标签: c#


【解决方案1】:

arr[0] > arr[1] && arr[2] 并不代表您认为的意思。您使用它的意思好像它意味着“arr[0] 大于arr[1]arr[2]”,但它实际上意味着“arr[0] 大于arr[1],并且arr[2] 是真实的”。为了得到你想要的意思,你需要这样写:arr[0] > arr[1] && arr[0] > arr[2]。其他两条类似的行也是如此。

【讨论】:

  • 是的,它有效!但是现在我遇到了 cs0161 错误。你知道为什么吗?
  • @АндрейРасскажи 编译器不够聪明,无法知道您的 3 个 if 块之一必须为真。要修复它,只需将最后一个 else if(...) 更改为 else,因为如果 arr[0]arr[1] 不是最大的,那么您知道 arr[2] 必须是无需进行任何更多测试。跨度>
猜你喜欢
  • 2016-08-24
  • 2022-01-09
  • 2018-03-30
  • 2016-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-28
相关资源
最近更新 更多