所以我的要求是
到目前为止,我的功能是
int is_arith_seq(const int *a, int n)
{
assert(n >= 1);
if (n == 1)
return 1;
int dif = a[0],i;
for (i=0;i<n;i++)
{
dif = a[i]-a[i+1];
if(dif=)
}
}
仅运行一次的循环编辑,注释中有人指出
for (i=0;i<n;i++)
{
currentdif = a[i+1]-a[i];
if(initaldif!=currentdif)
return 0;
}
return 1;
你可以看到它不完整,因为我现在完全陷入困境,我该怎么做才能完成它?
答案 0 :(得分:1)
提示:使用两个变量:firstdif
和currentdif
firstdif = a[1] - a[0];
for (i = 2; i < n; i++) {
currentdif = a[i] - a[i - 1];
// ...
}
答案 1 :(得分:0)
你只需要两个变量。 前两个术语之间的差异:diff0 任何其他连续两个项(a [i]和a [j])之间的差异:current_diff
现在,迭代数组直到current_diff == diff0。 如果访问所有元素,则数组表示算术系列 否则它没有。