@A_Htke

Си: как найти разницу двух массивов через qsort?

Даны два массива чисел А и В. Требуется найти все такие значения элементов массива А, которых нет среди элементов массива В. В задаче необходимо использовать функцию qsort.
Сигнатура:
В первой строке записано целое число N (1<=N<=10^5) - количество элементов массива А. Во второй строке через пробел записаны N целых чисел, каждое из которых не превосходит по абсолютной величине 10^9 - элементы массива А. В следующих двух строках в аналогичном формате записаны элементы массива В. В первой строке нужно вывести одно целое число - количество значений, удовлетворяющих описанному условию. Во второй строке нужно вывести все такие значения в порядке возрастания.
У меня в голову приходит только код без qsort. Работать-то работает, да только без нужной функции. Естественно, на одном из тестов в системе программа валится. Подскажите, пожалуйста, как впихнуть сюда qsort:
#include<stdio.h>
int main()
{
    int N;
    int A[100001] = {0}; 
    scanf("%d", &N);
    for (int i = 0, k; i < N; i++)
    {
        scanf("%d", &k);
        A[k] = 1;
    }
    scanf("%d", &N);  
    for (int i = 0, k; i < N; i++)
    {
        scanf("%d", &k);
        A[k] = 0;  
    }
    N = 0;
    for (int i = 0; i <= 100000; i++)
        N += A[i];
    printf("%d\n", N);
    for (int i = 0; i <= 100000; i++)
        if (A[i]) 
            printf("%d ", i);
    puts(""); //в списке нет языка С, поэтому код просто текстом
}
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Сортировка обоих массивов, затем проход сразу по обоим массивам в поисках различающихся элементов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы