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

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

Войти
Регистрация
Восстановить пароль
 
HelloWorld56
5 / 5 / 1
Регистрация: 29.03.2012
Сообщений: 62
#1

Заполнить массив неповторяющимися элементами - C++

07.05.2012, 17:33. Просмотров 749. Ответов 5
Метки нет (Все метки)

Заполнить массив из 20 элементов неповторяющимися элементами. Если пользователь вводит число, которое уже вводилось до этого, то должно выводиться сообщение: Такое число уже было повторите ввод.

C++ (Qt)
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 <ctime>
using namespace std;
 
int main ()
{
    setlocale (LC_CTYPE, "Russian");
 
    int array1 [20];
 
    cout<<"Заполните массив, неповторяюищимися числами: \n";
    
    for (int i = 0; i < 20; i++)
    {
        cin>>array1 [i];
        for ( int i_1 = 1; i - i_1 > 0; i_1++)
        {
            if (array1 [i] == array1 [i - i_1])
            {
                i--;
                cout<<"Такое число уже было, повторите ввод: ";
            }
        }
 
    
    }
    for (int i = 0; i < 20; i++)
    {
        cout<<array1 [i]<<" ";
    }
 
 
    
    
    
}
В целом программа работает, но не реагирует на 2 первых элемента. Скрин ниже

http://***********/F/s019.***********/...ebae4.png.html

Все остальные элементы сравнивает, а первые 2 нет.

Объясните что не так
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2012, 17:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнить массив неповторяющимися элементами (C++):

Двумерный массив с неповторяющимися элементами - C++
Добрый вечер! Столкнулся с проблемкой, нужна помощь. Цель задачи: составить программу, которая найдет в двумерном массиве минимальный...

Заполнить массив случайными неповторяющимися значениями - C++
Уважаемые программисты, я новенькая в C++. Помогите, пожалуйста, с домашкой по одноразм. массивам. Нужно сделать прогр., кот. заполняла бы...

Заполнить двумерный массив неповторяющимися числами - C++
Используя датчик случайных чисел, заполнить двумерный массив неповто- ряющимися числами.

Множество с неповторяющимися элементами - C++
При вводе нескольких одинаковых чисел, множество должно принимать только одно это число. #include&lt;iostream&gt; using namespace std; ...

Дан массив A[N]. заполнить массив В[N] элементами массива A[N], которые удовлетворяют двойному неравенству - C++
Дан массив A. заполнить массив В элементами массива A, которые удовлетворяют двойному неравенству: A&lt; A или A&lt; A. Незаполненные элементы...

Заполнить массив элементами С++ - C++
Заполнить массив элементами, значение которых равно его удвоенному порядковому номеру. Пожалуйста помогите,я уже не могу голова болит от...

5
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
07.05.2012, 17:41 #2
вы посмотрите что у вас поисходит в условии вложенного цикла, если i ==0, а i1 == 1 , то условие i - i1 >0 как раз не выполняется для первых двух элементов
сделайте так
C++
1
for (i1 =0; i1 < i; ++i1)
0
HelloWorld56
5 / 5 / 1
Регистрация: 29.03.2012
Сообщений: 62
07.05.2012, 18:14  [ТС] #3
Цитата Сообщение от antoha398 Посмотреть сообщение
вы посмотрите что у вас поисходит в условии вложенного цикла, если i ==0, а i1 == 1 , то условие i - i1 >0 как раз не выполняется для первых двух элементов
сделайте так
C++
1
for (i1 =0; i1 < i; ++i1)
тогда получается что i1 = 0 и i = 0 и условие i1 < i (0 < 0) неверно
0
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
07.05.2012, 18:41 #4
так для первого элемента и не надо проверять.
вы попробовали запустить как я сказал?
0
HelloWorld56
5 / 5 / 1
Регистрация: 29.03.2012
Сообщений: 62
07.05.2012, 19:11  [ТС] #5
Цитата Сообщение от antoha398 Посмотреть сообщение
вы попробовали запустить как я сказал?
да
вот что получается http://***********/F/s019.***********/...ec3d3.png.html
0
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
07.05.2012, 19:25 #6
Цитата Сообщение от HelloWorld56 Посмотреть сообщение
if (array1 [i] == array1 [i - i_1])
а, еще надо исправить
C++
1
if (array1 [i] == array1 [i_1])
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2012, 19:25
Привет! Вот еще темы с ответами:

Заполнить массив убывающими элементами - C++
Например: 67 56 43 32 5 3 #include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main () { setlocale (LC_CTYPE,...

Заполнить массив элементами от -0.9 до 0.9 с шагом 0.1 (ошибка) - C++
Здравствуйте. Помогите пожалуйста разобраться. Нужно заполнить массив элементами от -0.9 до 0.9 с шагом 0.1. Но когда выполняется программа...

Определить количество столбцов с неповторяющимися элементами в двумерном массиве - C++
подскажите алгоритм для того, как посчитать столбцы, в которых все элементы отличаются(с неповторяющимися элементами) для Си

заполнить двумерный массив элементами в соответствии с рисунком - C++
массив 6x6 от 1 до 36 1 3 6 10 15 21 2 5 9 14 20 26 4 8 13 19 25 30 7 12 18 24 29 33 11 17 23 28 32 35 16 22 27 31 34 36 ...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
07.05.2012, 19:25
Ответ Создать тему
Опции темы

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