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

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

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

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

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

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

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

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

17
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
30.09.2010, 17:47
Быстро вы, однако, материал проходите... Первая лекция, а уже массивы, генерация случайных чисел, циклы... А мы вот сначала Хэллоу Ворлд писали...
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.09.2010, 17:47
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
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
30.09.2010, 17:48
Lavroff,
И все же такое может случиться...
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.09.2010, 17:48
silent_1991, Может. Но вероятность. Несколько минимальна.
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
30.09.2010, 17:51
Lavroff,
Практика и закон Мёрфи подсказывают, что то, что может произойти с минимальной вероятность, происходит на глазах у препода
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.09.2010, 17:55
silent_1991, Хаха) Тоже верно вполне)))
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
30.09.2010, 18:03
Лучший ответ Сообщение было отмечено как решение

Решение

Пойдет?
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  [ТС]
СПАСИБО да у нас так. просто у нас паскаль на первом курсе был и вот так мы быстро по темам скачим в С

Добавлено через 10 минут
не вижу самого масива. ввожу размер и он снова просит ввести размер...
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
30.09.2010, 18:17
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
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.09.2010, 18:23
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
30.09.2010, 18:25

Не по теме:

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

1
0 / 0 / 0
Регистрация: 16.09.2009
Сообщений: 12
30.09.2010, 18:30  [ТС]
blin ja ne znaju, no v etom tvojom variante tozhe na ekarane ni4ego nety! ja ne znaju mozhet 4o ne tak delaju...
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
30.09.2010, 18:31
Цитата Сообщение от silent_1991 Посмотреть сообщение
Значит вводите, видимо, не 5 и не 6...
да не, это мой косяк. там логические И должно стоять в условии. а у меня ИЛИ.
0
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
30.09.2010, 18:33
Числа вроде как неповторяющиеся. Я тут симпровизировал, не судите строго

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  [ТС]
spasibo vrode rabotaet! no esli vvodiw NE 5 i 6 to massiv vsjoravno vivoditsja(
0
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
30.09.2010, 18:50
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  [ТС]
a spasibo tebe
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.09.2010, 18:54
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru