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

Программа запрашивает массив, в котором N целых чисел, и выводит на экран имеются ли в массиве одинаковые числа - C++

Восстановить пароль Регистрация
 
Limonadik
0 / 0 / 0
Регистрация: 20.04.2014
Сообщений: 3
20.04.2014, 00:50     Программа запрашивает массив, в котором N целых чисел, и выводит на экран имеются ли в массиве одинаковые числа #1
Не могу понять почему он не выводит все совпадения а только совпадения с первым элементом.

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
#include <iostream >
using namespace std;
 
int main()
{
    int N;
    double a[N];
    time_t t;
    srand((unsigned) time(&t));
    
    cout << "Enter the number of elements: " << endl;
    cin >> N;
    
    for(int i=0;i<N;++i)
        a[i] =rand()%4; // это просто к примеру для простоты понимания так взял
        
        for(int i=0;i<N;++i)
                cout << i << ": " << a[i] << endl;    // это для проверки 
        
        int i=0;
        while(i<N)
        {
                  for (int m=0; m!=i && m<N && a[m]==a[i]; ++m)
                      {    cout << m << " = " << i << endl;    }
        ++i;
        }
    
    system("pause");
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2014, 00:50     Программа запрашивает массив, в котором N целых чисел, и выводит на экран имеются ли в массиве одинаковые числа
Посмотрите здесь:

C++ Дан массив целых чисел с 0 ,вывести на экран все числа кроме 0
C++ Дан массив целых чисел. Определить все уникальные числа в массиве и сколько раз каждое из них встречается в массиве.
Получить два целых числа, после этого вывести большее на печать C++
C++ Сгенерировать массив из 20 чисел в интервале 0 до 100. Определить есть ли в массиве одинаковые числа.
Определить, имеются ли в массиве одинаковые элементи C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
20.04.2014, 01:12     Программа запрашивает массив, в котором N целых чисел, и выводит на экран имеются ли в массиве одинаковые числа #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Limonadik Посмотреть сообщение
int N;
* * double a[N];
Объявление массива? а ничего что N еще непроинициализирована??

Добавлено через 7 минут
Limonadik, так не проще ли
C++
1
2
3
4
   for(int i=0; i<N-1; i++)
        for(int j=i+1; j<N; j++)
            if(a[i]==a[j])
                cout<<"["<<i<<"] = ["<<j<<"]\n";
Limonadik
0 / 0 / 0
Регистрация: 20.04.2014
Сообщений: 3
20.04.2014, 01:37  [ТС]     Программа запрашивает массив, в котором N целых чисел, и выводит на экран имеются ли в массиве одинаковые числа #3
cooller_94

Огромное спасибо - работает. Меня точно уже не в ту степь понесло.

А что не так с инициализацией? Как по другому это сделать если число элементов надо вводить по условию задачи?
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
20.04.2014, 01:45     Программа запрашивает массив, в котором N целых чисел, и выводит на экран имеются ли в массиве одинаковые числа #4
Цитата Сообщение от Limonadik Посмотреть сообщение
А что не так с инициализацией? Как по другому это сделать если число элементов надо вводить по условию задачи?
Вы объявили N, но не проинициализировали ее. После этого, объявляете массив размером N. А это значит что массив будет размером "попробуй угадать" и скорей всего приведет к ошибке.
Также, в таких случаях лучше использовать динамическое выделение памяти, так как компилятор должен знать размер массива во время компиляции, а не во время исполнения
Вот так, например
C++
1
2
3
int N;
std::cin>>N;
int *arr = new int [N];
Yandex
Объявления
20.04.2014, 01:45     Программа запрашивает массив, в котором N целых чисел, и выводит на экран имеются ли в массиве одинаковые числа
Ответ Создать тему
Опции темы

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