ソートされた配列のモードを見つけようとしているので、次のコードを書いた。しかし、それは私にその配列の中で最大の数を与えます。モードを探すコードを書いたが最大の番号を返す
誰でもお手伝いできますか?
typedef struct mode {
int self;
int size;
} mode;
mode findmode(int *arr, int size) {
mode x;
int i = 0;
int count = 1;
for (i = 0; i < size; i++) {
if (i > 1 && i < size) {
if (arr[i] == arr[i - 1]) ++count;
if (arr[i] != arr[i - 1]) {
x.size = count;
x.self = arr[i - 1];
count = 0;
++count;
}
if (arr[i] != arr[i + 1]) {
if (count > x.size) x.size = count;
x.self = arr[i];
}
}
}
return x;
}
2番目の 'if'は配列の最後の要素を超えてアクセスし、最後の' if'の後の2つの文は '{}'にあるべきですか? –
私はそれらを1つに{}含んでいますが、それでも私の望むように動作しません。 –
デバッガおよび/またはデバッグプリントステートメントを使用して、プログラムの実行をトレースします。 – kaylum