Как отсортировать массив, чтобы он работал (язык СИ)?

Добрый вечер! Столкнулся с проблемой, не понимаю, что нужно сделать, чтобы массив заработал. Спасибо за помощь!
Код задачи:
#include <stdio.h>
#include <stdlib.h>
#define N 16
int main() {
    int A, i;
    int a[] = {5,5,6,6,10,22,22,11,11,53,-3,-3,7,9,7,41};
    int count=0;
    printf("Input A="); scanf ("%i", &A);
    printf("Выходные данные ");
    for (i=0; i<N; i++) {
        printf("%d ", a[i]);
    }
    printf("\nОдинаковые числа "); // нужно вывести одинаковые элементы массива, которые больше А
    for (i=0; i<N; i++) {
        if (a[i] == a[i-1] && (i+1== N || a[i+1] != a[i]))
        {
            count++;
            printf("%i ", a[i]);
        }
    }
    printf("\nКоличество = %d", count); //подсчитать количество одинаковых элементов массива, которые больше А
}
  • Вопрос задан
  • 62 просмотра
Ответы на вопрос 1
@res2001
Developer, ex-admin
Было бы лучше, если бы вы указали в вопросе, какие конкретно проблемы, что выводит и т.п.
На вскидку: в этой строке выход за границы массива дважды:
if (a[i] == a[i-1] && (i+1== N || a[i+1] != a[i]))
Первый раз при i=0 в a[i-1], второй раз при i = N - 1: a[i+1].
Видимо вам нужно первый и последний элемент массива обрабатывать отдельно (не в общем цикле).
Да и в целом, как мне кажется, вы не правильно решаете задачу.
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы