为什么我会收到某些错误和错误的输出?

时间:2017-08-02 06:06:11

标签: c

我有这个任务来获得数组输入之间的常量值。 我该怎么办呢?我使用了选择排序算法并搜索了值,但我知道这是错误的方法。

1 个答案:

答案 0 :(得分:2)

首先,25项。第一条评论是正确的,如果输入最大项目数,则不会设置templength。逐步跟踪代码将显示此信息。

关于输出的错误。我会避免在数组索引中使用太多的偏移量。它使代码更难理解,当然更难调试。在这种情况下,偏移量也会给出非常短的数组的问题,如评论中所指出的那样。为什么不尝试类似的东西:

int findconstant(int dataset[], int templength)
{
    int lcv;
    int constantvalue;
    if (templength <= 1) {
        return 0;
    }
    constantvalue = dataset[1] - dataset[0];
    for (lcv = 2; lcv < templength ; lcv++) {
        if ((dataset[lcv] - dataset[lcv-1]) != constantvalue) {
            return 0;
        }
    }
    return constantvalue;
} 

它更短,更易于阅读,理解和调试。