配列内の隣接する2つの値の最大の差異を検出したいとします。たとえば、配列int tab[6] = {1,2,8,4,5,6};
の場合、8
と2
の違いのため最大差は6
です。残差は1
です。だから、私のプログラムの結果は6
でなければなりません。しかし、私のプログラムのプリント1
と私はどこの問題だかわからない:アレイ内の隣接する2つの値の最大差C
#include <stdio.h>
int main(int argc, char **argv)
{
int n = 6;
int tab[6] = {1,2,8,4,5,6};
int diff = tab[1] - tab[0], maxdiff = diff, i;
for(i=2; i<n-1; i++)
{
if(diff > maxdiff)
maxdiff = diff;
diff = tab[i] - tab[i-1];
}
printf("%d\n", diff);
return 0;
}
これは、より多くの(https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)[ラバーダックのジョブ] ...あなたますように見えますこのようなことをデバッグすることを自分自身に奨励してください。 –
@George: '6'を' 26'に変更しても、 '21'ではなく' 6'が表示されます。 –
デバッガを使用してください。 –