我有这个任务来获得数组输入之间的常量值。 我该怎么办呢?我使用了选择排序算法并搜索了值,但我知道这是错误的方法。
答案 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;
}
它更短,更易于阅读,理解和调试。