Как организовать проверку на одинаковые элементы и вывести сообщение, если они есть?

Рейтинг: 1Ответов: 1Опубликовано: 15.03.2015
#include<stdio.h>
#include<iostream>

using namespace std;
int main()
{
setlocale(LC_ALL, "");
int a[] = { 1, 2, 3, 4, 5, -1, -2, -3, -4, -5, 7, 7, 7, 9, 10, -6, -7, -8, -9, -10 }, i, j,k;
int(*b)[5];
b = (int(*)[5])a;
for (i = 0; i < 4; i++)
{
    for (j = 0; j < 5; j++)
        cout << b[i][j] << " ";
    cout << "\n";
}
system("pause");

}

Ответы

▲ 1

Все ответы плохие, кроме совета, данного avp. Я хочу уточнить только, что если задание понимать буквально, т.е. надо определить лишь сам факт наличия повторяющихся элементов, то можно еще вот так извратиться:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int array[] = { 1, 2, 3, 4, 5, -1, -2, -3, -4, -5, 7, 7, 7, 9, 10, -6, -7, -8, -9, -10 };
    int repetitions = 0;

    int compare(const void* pa, const void* pb)
    {
        int a = *(int*)pa;
        int b = *(int*)pb;
        if (a == b)
        {
            repetitions = 1;
            return 0;
        }
        return a < b ? -1 : 1;
    }

    qsort(array, sizeof(array) / sizeof(int), sizeof(int), compare);
    puts(repetitions ? "Yes!" : "No.");
    return 0;
}