首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >程序怎么知道数组到了10?

程序怎么知道数组到了10?
EN

Stack Overflow用户
提问于 2018-06-12 02:28:32
回答 2查看 104关注 0票数 -6

我对这个任务有一个问题:

写一个C#程序,它将接受一个整数列表,并检查需要多少个整数才能完成这个范围。例如,1、3、4、7、9、1-9之间的-> 2、5、6、8不在列表中。因此,输出将是4。

下面是该任务的代码:

代码语言:javascript
复制
public class Example
{
    public static int consecutive_array(int[] input_Array)
    {
        Array.Sort(input_Array);
        int ctr = 0;
        for (int i = 0; i < input_Array.Length - 1; i++)
        {
            ctr += input_Array[i + 1] - input_Array[i] - 1;
        }
        return ctr;
    }

    public static void Main()
    {
        Console.WriteLine(consecutive_array(new int[] { 1, 3, 5, 6, 9 }));
        Console.WriteLine(consecutive_array(new int[] { 0, 10 }));
        Console.ReadLine();
    }
}

我的问题是,程序如何知道数组从0到9。我们已经定义了数组的长度。

EN

回答 2

Stack Overflow用户

发布于 2018-06-12 02:52:19

还不清楚你的问题是什么。既然你已经完成了任务,你至少应该至少了解代码是如何工作的。如果代码不是你写的,那么也许你应该问问你复制代码的人。如果这不是一个选项,那么单步执行/调试代码。

为了解决这个问题,我会用稍微不同的方式来解决:

您知道长度应该是最大值和最小值之间的差值,并且知道长度有多长,所以这应该是一个简单的算术算法,用于确定input_Array的长度与顺序满时的长度之间的差值:

代码语言:javascript
复制
    public static int consecutive_array(int[] input_Array)
    {
        // we know the array length SHOULD be ==( max - min + 1)
        Array.Sort(input_Array);
        int fullLength = (input_Array[input_Array.Count()-1] - input_Array[0] + 1);
        return (fullLength - input_Array.Length);
    }
票数 1
EN

Stack Overflow用户

发布于 2018-06-12 02:31:02

您正在从数组的长度中减去1,并使用小于运算符。这将有效地在结束前切断它的1个项目。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50803956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档