Форум программистов, компьютерный форум CyberForum.ru

Вывести одинаковые числа в массиве или сообщение, что таких чисел нет - C++

Восстановить пароль Регистрация
 
tesler
 Аватар для tesler
3 / 3 / 0
Регистрация: 08.04.2011
Сообщений: 197
24.10.2011, 19:25     Вывести одинаковые числа в массиве или сообщение, что таких чисел нет #1
плиз помогите: дан одномерный массив, вывести одинаковые числа, и вывести если этих чисел нет; когда ставлю иначе(еlse) вывести "одинаковых чисел нет", вот сколько нет совпадений столько он и пишет, как вывести ОДИН РАЗ что нет одинаковых чисел, я понимаю что if стоит в цикле, и else тоже всегда будет в цикле...но без цикла там вроде нельзя, по крайней мере ничего не могу придумать
вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# include <iostream>
# include <windows.h>
# include <conio.h>
# include <stdlib.h>
 
using namespace std;
int main ()
{   SetConsoleOutputCP(1251);
    const int n=15;
    int a[n];
    printf("\nНеотсортированный массив из случайных чисел:\n");
    int min=10,max=50,i;
    for (int i=0; i<n-1; i++)
        {
        a[i]=  rand() % (max-min+1)+min;
        cout << a[i] <<" ";
        }
        printf("\n Отсортированный массив из случайных чисел:\n");
        int j,A;
        for ( i=0; i<n-1; i++)
             {int imin=i;
            for ( j=i+1;j<n;j++)
                if (a[j]<a[imin]) 
                                                         imin=j;
                                   A=a[i];
                    a[i]=a[imin];
                    a[imin]=A;
             }  
            
              for(i=1;i<n;i++)  cout << a[i] <<" ";
              printf("\n Одинаковые числа:\n");
                for(i=1;i<n-1;i++)
                    if (a[i]==a[i+1])
                    {cout << a[i];}
         _getch();
}
Добавлено через 1 минуту
начиная с 33 строки!!!посмотрите
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2011, 19:25     Вывести одинаковые числа в массиве или сообщение, что таких чисел нет
Посмотрите здесь:

Переставить числа в массиве таким образом что бы слева от границы стояли числа меньшие или равные b C++
Найти все натуральные числа в диапазоне между m и n (m<n), в записи которых нет двух одинаковых цифр. Подсчитать количество таких чисел. C++
C++ Сгенерировать массив из 20 чисел в интервале 0 до 100. Определить есть ли в массиве одинаковые числа.
C++ Вывести на экран все шестизначные числа, сумма цифр которых равна N и сообщить количество таких чисел
C++ 11.196. Дан массив целых чисел. Найти номер первого элемента, кратного числу 13. Если таких элементов в массиве нет, то должно быть напечатано соответ
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
14002 / 8833 / 1234
Регистрация: 24.12.2010
Сообщений: 16,012
24.10.2011, 19:42     Вывести одинаковые числа в массиве или сообщение, что таких чисел нет #2
tesler, Перед циклом напиши "k = 0"
Потом, если попались одинаковые, "k++"
По окончании цикла
C
1
if (k==0) cout<< "NO";
И еще. Проверка должна быть
C
1
if (a[i-1]==a[i]) ...
tesler
 Аватар для tesler
3 / 3 / 0
Регистрация: 08.04.2011
Сообщений: 197
25.10.2011, 12:29  [ТС]     Вывести одинаковые числа в массиве или сообщение, что таких чисел нет #3
да но мне нужно вывести не разы а сами числа, а в моем случае получится вот как(с else):
"совпадений нет!" "совпадений нет!" 32 "совпадений нет!".....и т.д(32 - найденное совпадение)

а надо либо "совпадений нет!"(1 РАЗ!!!!) либо "32" (но это он уже делает)
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
26.10.2011, 12:41     Вывести одинаковые числа в массиве или сообщение, что таких чисел нет #4
попробуй так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# include <iostream>
# include <windows.h>
# include <conio.h>
# include <time.h>
 
using namespace std;
int main ()
{       
    SetConsoleOutputCP(1251);
    srand(time(NULL));
    const int n=15;
    int a[n];//={1,1,1,2,2,2,2,3,3,3,3,3,3,4,5};
    printf("\nНеотсортированный массив из случайных чисел:\n");
    int min=10,max=50,i;
    for (i=0; i<n; i++)
    {
        a[i]=rand() % (max-min+1)+min;
        cout << a[i] <<" ";
    }
    printf("\n Отсортированный массив из случайных чисел:\n");
    int j,A;
    for ( i=0; i<n; i++)
    {
        int imin=i;
        for ( j=i+1;j<n;j++)
            if (a[j]<a[imin]) 
                imin=j;
            A=a[i];
            a[i]=a[imin];
            a[imin]=A;
    }
    for(i=0;i<n;i++)  cout << a[i] <<" ";
    printf("\nОдинаковые числа: ");
    int flag=0;
    for(i=0;i<n-1;i++)
        if (a[i]==a[i+1])
        {
            cout << a[i]<<" ";
            flag=1;
            while(a[i]==a[i+1]) i++;
        }
    if(!flag) cout<<"нет\n";
    _getch();
}
Yandex
Объявления
26.10.2011, 12:41     Вывести одинаковые числа в массиве или сообщение, что таких чисел нет
Ответ Создать тему
Опции темы

Текущее время: 00:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru