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

Сгенерировать одномерный масив так чтобы цифры в нём не повторялись - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
andreya
0 / 0 / 0
Регистрация: 16.09.2009
Сообщений: 12
30.09.2010, 17:39     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #1
Пожалуйста помогите! Пропустил первую лекцию по С, теперь сижу на лабе не знаю что делать. Задание не сложное, но как реализовать не понимаю (первый раз работаю на этом языке).

Задание:
Сгенерировать одномерный масив (размером 5 или 6, это выберает пользователь) и так чтобы цифры в нём не повторялись.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2010, 17:39     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись
Посмотрите здесь:

Обработать строку так, чтобы чтобы в ней остались только те слова которые содержат буквы и цифры C++
C++ создать Объединение двух одномерных массивов в один НО так ,чтобы елементи в повторялись
Перевод чисел в двоичную СС. Так, чтобы сразу начиналось со значащей цифры C++
C++ Переставить цифры в этом числе так, чтобы получить наименьшее из чисел
C++ Как сделать так, чтобы значения экземпляров класса не повторялись
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.09.2010, 17:47     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #2
Быстро вы, однако, материал проходите... Первая лекция, а уже массивы, генерация случайных чисел, циклы... А мы вот сначала Хэллоу Ворлд писали...
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.09.2010, 17:47     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #3
andreya, Крайне сомнительно, что будет повтор)
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
int main()
{
    srand(static_cast<unsigned>(time(NULL)));
    int N;
    int*Arr;
    std::cout<<"Enter size of array. 5 of 6: ";
    std::cin>>N;
    if(N!=5&&N!=6)
    {
        std::cerr<<"Can be only 5 of 6\n";
        return 0;
    }
    Arr=new int[N];
    for(int i=0; i<N; ++i)
    {
          Arr[i]=rand();
    }
    for(int i=0; i<N; ++i)
       std::cout<<Arr[i]<<' ';
    return 0;
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.09.2010, 17:48     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #4
Lavroff,
И все же такое может случиться...
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.09.2010, 17:48     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #5
silent_1991, Может. Но вероятность. Несколько минимальна.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.09.2010, 17:51     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #6
Lavroff,
Практика и закон Мёрфи подсказывают, что то, что может произойти с минимальной вероятность, происходит на глазах у препода
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.09.2010, 17:55     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #7
silent_1991, Хаха) Тоже верно вполне)))
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
30.09.2010, 18:03     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Пойдет?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdlib.h>
#include <stdio.h>
 
#define MAX_SIZE 6
 
int main()
{
    int arr[MAX_SIZE];
    int size = 0;
    int i = 0;
    
    while(size != 5 || size != 6) {
        printf("Введите размер (5 или 6): ");
        scanf("%d", &size);
    }
    
    for(i = 0; i < size; ++i)
        arr[i] = i;
    
    return 0;
}
andreya
0 / 0 / 0
Регистрация: 16.09.2009
Сообщений: 12
30.09.2010, 18:17  [ТС]     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #9
СПАСИБО да у нас так. просто у нас паскаль на первом курсе был и вот так мы быстро по темам скачим в С

Добавлено через 10 минут
не вижу самого масива. ввожу размер и он снова просит ввести размер...
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.09.2010, 18:17     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #10
andreya,
Значит вводите, видимо, не 5 и не 6...
Ну а сам массив не выводится на экран, в коде fasked этого не предусмотрено.
Надо так:

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
#include <stdlib.h>
#include <stdio.h>
 
#define MAX_SIZE 6
 
int main()
{
    int arr[MAX_SIZE];
    int size = 0;
    int i = 0;
    
    while(size != 5 || size != 6) {
        printf("Введите размер (5 или 6): ");
        scanf("%d", &size);
    }
    
    for(i = 0; i < size; ++i)
    {
        arr[i] = i;
        printf("%d  ", arr[i]);
    }
    
    return 0;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.09.2010, 18:23     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #11
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
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <set>
 
int main()
{
    srand(static_cast<unsigned>(time(NULL)));
    std::set<int> Set;
    int N;
    std::cout<<"Enter N: ";
    std::cin>>N;
    if(N!=5&&N!=6)
    {
        std::cerr<<"No good! N must be only 5 of 6\n";
        return 0;
    }
    for(int i=0; i<N; ++i)
    {
        if(!Set.insert(rand()%10+1).second)
            i--;
    }
    std::copy(Set.begin(), Set.end(), std::ostream_iterator<int>(std::cout, " "));
    return 0;
}
fasked
30.09.2010, 18:25
  #12

Не по теме:

Lavroff, я ждал этого

andreya
0 / 0 / 0
Регистрация: 16.09.2009
Сообщений: 12
30.09.2010, 18:30  [ТС]     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #13
blin ja ne znaju, no v etom tvojom variante tozhe na ekarane ni4ego nety! ja ne znaju mozhet 4o ne tak delaju...
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
30.09.2010, 18:31     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #14
Цитата Сообщение от silent_1991 Посмотреть сообщение
Значит вводите, видимо, не 5 и не 6...
да не, это мой косяк. там логические И должно стоять в условии. а у меня ИЛИ.
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
30.09.2010, 18:33     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #15
Числа вроде как неповторяющиеся. Я тут симпровизировал, не судите строго

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 <stdio.h>
#include <conio.h>
#include <windows.h>
 
int main()
{
    srand(GetTickCount());
    int N; int num;
    bool uniq ;
    printf("Enter 5 or 6: "); scanf("%d",&N);
int *Arr = new int[N];
 
int i,j;
for( i = 0;i < N;i++)
{uniq = true;
num = rand()%10;
j = i;
do
{
    j--;
if(num == Arr[j])
{
    uniq = false;
    i--;
    break;
}
}while(j > 0);
if(uniq)
Arr[i] = num;
}
 
for(i = 0;i < N;i++)
printf("\n%d",Arr[i]);
 
_getch();
}
andreya
0 / 0 / 0
Регистрация: 16.09.2009
Сообщений: 12
30.09.2010, 18:41  [ТС]     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #16
spasibo vrode rabotaet! no esli vvodiw NE 5 i 6 to massiv vsjoravno vivoditsja(
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
30.09.2010, 18:50     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #17
spasibo vrode rabotaet! no esli vvodiw NE 5 i 6 to massiv vsjoravno vivoditsja(
в приведенных выше примерах это решается, я просто не стал на это заморачиваться


C
1
2
3
4
5
if(N!=5&&N!=6)
        {
                printf("No good! N must be only 5 of 6\n");
                //return 0;
        }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2010, 18:54     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись
Еще ссылки по теме:

C++ Объединить два массива так, чтобы числа в новом массиве не повторялись
Перемешать массив так, чтобы числа в нём не повторялись C++
C++ Рандомное заполнение массива так, чтобы числа в нем не повторялись

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

Или воспользуйтесь поиском по форуму:
andreya
0 / 0 / 0
Регистрация: 16.09.2009
Сообщений: 12
30.09.2010, 18:54  [ТС]     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #18
a spasibo tebe
Yandex
Объявления
30.09.2010, 18:54     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись
Ответ Создать тему
Опции темы

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