Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 16.09.2009
Сообщений: 12
1

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

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

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

Задание:
Сгенерировать одномерный масив (размером 5 или 6, это выберает пользователь) и так чтобы цифры в нём не повторялись.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.09.2010, 17:39
Ответы с готовыми решениями:

Перемешать масив так, чтобы числа в нём не повторялись
помогите перемешать масив так чтобы числа в нём не повторялись.Массив состоит из 28 елементов ...

Перемешать массив так, чтобы числа в нём не повторялись
как сделать чтоб при выводе числа не повторялись ? #include "stdafx.h" #include <iostream>...

Рандомное заполнение массива так, чтобы числа в нем не повторялись
ребята помогите , как сделать рандомное заполнение массива так чтобы числа в нем не повторялись ...

Судоку: Сделать так, чтобы цифры не повторялись
Пишу игру судоку. Не могу сделать так, чтобы цифры не повторялись. Вот код заполнения поля: ...

17
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
30.09.2010, 17:47 2
Быстро вы, однако, материал проходите... Первая лекция, а уже массивы, генерация случайных чисел, циклы... А мы вот сначала Хэллоу Ворлд писали...
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
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;
}
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
30.09.2010, 17:48 4
Lavroff,
И все же такое может случиться...
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.09.2010, 17:48 5
silent_1991, Может. Но вероятность. Несколько минимальна.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
30.09.2010, 17:51 6
Lavroff,
Практика и закон Мёрфи подсказывают, что то, что может произойти с минимальной вероятность, происходит на глазах у препода
1
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.09.2010, 17:55 7
silent_1991, Хаха) Тоже верно вполне)))
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 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;
}
2
0 / 0 / 0
Регистрация: 16.09.2009
Сообщений: 12
30.09.2010, 18:17  [ТС] 9
СПАСИБО да у нас так. просто у нас паскаль на первом курсе был и вот так мы быстро по темам скачим в С

Добавлено через 10 минут
не вижу самого масива. ввожу размер и он снова просит ввести размер...
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
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;
}
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
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;
}
2
fasked
30.09.2010, 18:25
  #12

Не по теме:

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

1
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...
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
30.09.2010, 18:31 14
Цитата Сообщение от silent_1991 Посмотреть сообщение
Значит вводите, видимо, не 5 и не 6...
да не, это мой косяк. там логические И должно стоять в условии. а у меня ИЛИ.
0
246 / 178 / 47
Регистрация: 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();
}
1
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(
0
246 / 178 / 47
Регистрация: 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;
        }
1
0 / 0 / 0
Регистрация: 16.09.2009
Сообщений: 12
30.09.2010, 18:54  [ТС] 18
a spasibo tebe
0
30.09.2010, 18:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.09.2010, 18:54
Помогаю со студенческими работами здесь

Ввести в массив четыре случайные цифры, так чтобы они не повторялись
Привет! Подскажите как можно вводить в массив четыре случайные цифры и так чтобы они не...

Как сгенерировать случайное число таким образом, что бы цифры не повторялись?
Можно ли в C#-е сгенерировать 4-значное или 5 значное число таким образом, что бы было...

Раскидать цифры от 1 до N и чтобы они не повторялись
Здравствуйте. Подскажите пожалуйста, как можно с помощью Random раскдать значения к примеру от 1 до...

Отсортировать массив так, чтобы в нем сначала шли буквы латинского алфавита, затем цифры и, в конце, остальные элементы
Задан символьный массив размера N. Отсортировать массив так, чтобы в нем сначала шли буквы...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru