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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tesler
3 / 3 / 0
Регистрация: 08.04.2011
Сообщений: 197
#1

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

24.10.2011, 19:25. Просмотров 336. Ответов 3
Метки нет (Все метки)

плиз помогите: дан одномерный массив, вывести одинаковые числа, и вывести если этих чисел нет; когда ставлю иначе(е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++
C++ Сгенерировать массив из 20 чисел в интервале 0 до 100. Определить есть ли в массиве одинаковые числа.
C++ Вывести на экран все шестизначные числа, сумма цифр которых равна N и сообщить количество таких чисел
C++ 11.196. Дан массив целых чисел. Найти номер первого элемента, кратного числу 13. Если таких элементов в массиве нет, то должно быть напечатано соответ
C++ Целочисленный массив. Сжать нулевые элементы, если таких нет вывести сообщение
C++ Программа запрашивает массив, в котором N целых чисел, и выводит на экран имеются ли в массиве одинаковые числа
Вывести массив, притом что одинаковые числа выводятся один раз C++
C++ Дан массив из 20 вещественных чисел. Определить, есть ли в массиве одинаковые числа и вывести их на экран
C++ Найти минимальное положительное число в заданном массиве, а если таких нет, вывести на экран ноль
Вывести на экран все двузначные числа, делящиеся на каждую из своих цифр и подсчитать количество таких чисел C++
Вывести True или False в зависимости от того, имеют три заданных целых числа одинаковую четность или нет C++
как сделать что-бы код в массиве вывел одинаковые числа? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
Эксперт C
15536 / 9878 / 1484
Регистрация: 24.12.2010
Сообщений: 18,475
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
3 / 3 / 0
Регистрация: 08.04.2011
Сообщений: 197
25.10.2011, 12:29  [ТС]     Вывести одинаковые числа в массиве или сообщение, что таких чисел нет #3
да но мне нужно вывести не разы а сами числа, а в моем случае получится вот как(с else):
"совпадений нет!" "совпадений нет!" 32 "совпадений нет!".....и т.д(32 - найденное совпадение)

а надо либо "совпадений нет!"(1 РАЗ!!!!) либо "32" (но это он уже делает)
aeshes
439 / 202 / 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     Вывести одинаковые числа в массиве или сообщение, что таких чисел нет
Ответ Создать тему
Опции темы

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