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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
andreya
0 / 0 / 0
Регистрация: 16.09.2009
Сообщений: 12
#1

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

30.09.2010, 17:39. Просмотров 1232. Ответов 17
Метки нет (Все метки)

Пожалуйста помогите! Пропустил первую лекцию по С, теперь сижу на лабе не знаю что делать. Задание не сложное, но как реализовать не понимаю (первый раз работаю на этом языке).

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

Обработать строку так, чтобы чтобы в ней остались только те слова которые содержат буквы и цифры C++
C++ создать Объединение двух одномерных массивов в один НО так ,чтобы елементи в повторялись
Перевод чисел в двоичную СС. Так, чтобы сразу начиналось со значащей цифры C++
C++ Переставить цифры в этом числе так, чтобы получить наименьшее из чисел
C++ В числе *4**3 дописать три цифры так, чтобы полученное число делилось на 15
Преобразовать число так, чтобы его цифры представляли собой неубывающую последовательность C++
C++ Как сделать так, чтобы значения экземпляров класса не повторялись
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,026
Завершенные тесты: 1
30.09.2010, 17:47     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #2
Быстро вы, однако, материал проходите... Первая лекция, а уже массивы, генерация случайных чисел, циклы... А мы вот сначала Хэллоу Ворлд писали...
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 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
Эксперт С++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,026
Завершенные тесты: 1
30.09.2010, 17:48     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #4
Lavroff,
И все же такое может случиться...
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
30.09.2010, 17:48     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #5
silent_1991, Может. Но вероятность. Несколько минимальна.
silent_1991
Эксперт С++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,026
Завершенные тесты: 1
30.09.2010, 17:51     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #6
Lavroff,
Практика и закон Мёрфи подсказывают, что то, что может произойти с минимальной вероятность, происходит на глазах у препода
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
30.09.2010, 17:55     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись #7
silent_1991, Хаха) Тоже верно вполне)))
fasked
Эксперт C++
 Аватар для fasked
4929 / 2509 / 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
Эксперт С++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,026
Завершенные тесты: 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
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 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
4929 / 2509 / 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++ Рандомное заполнение массива так, чтобы числа в нем не повторялись
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     Сгенерировать одномерный масив так чтобы цифры в нём не повторялись
Ответ Создать тему
Опции темы

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