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

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

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

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

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

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

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

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

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

Как сделать так, чтобы значения экземпляров класса не повторялись - C++
Я пытаюсь написать игру 2048. Коротко об игре, для тех кто не знает: Есть поле 4х4 в нем появляются на случайной позиции квадратики с...

Объединить два массива так, чтобы числа в новом массиве не повторялись - C++
я даже их объединить не могу, они разной размерности и не выходит=( вот что я писала #include <QCoreApplication> #include <iostream>...

создать Объединение двух одномерных массивов в один НО так ,чтобы елементи в повторялись - C++
/*создать Объединение двух одномерных массивов в один НО так ,чтобы елементи в повторялись/ например : A{1,2,3,1,5,6} B{9,8,7,6,6,4} в С...

Обработать строку так, чтобы чтобы в ней остались только те слова которые содержат буквы и цифры - C++
Привет всем, помогите решить задачу. Обработать строку таким образом чтобы чтобы в ней остались только те слова которые содержат буквы и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.09.2010, 17:47 #2
Быстро вы, однако, материал проходите... Первая лекция, а уже массивы, генерация случайных чисел, циклы... А мы вот сначала Хэллоу Ворлд писали...
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 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
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.09.2010, 17:48 #4
Lavroff,
И все же такое может случиться...
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
30.09.2010, 17:48 #5
silent_1991, Может. Но вероятность. Несколько минимальна.
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.09.2010, 17:51 #6
Lavroff,
Практика и закон Мёрфи подсказывают, что то, что может произойти с минимальной вероятность, происходит на глазах у препода
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
30.09.2010, 17:55 #7
silent_1991, Хаха) Тоже верно вполне)))
fasked
Эксперт С++
4935 / 2515 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 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
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 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
Эксперт С++
4935 / 2515 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
30.09.2010, 18:31 #14
Цитата Сообщение от silent_1991 Посмотреть сообщение
Значит вводите, видимо, не 5 и не 6...
да не, это мой косяк. там логические И должно стоять в условии. а у меня ИЛИ.
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();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2010, 18:33
Привет! Вот еще темы с ответами:

Сгенерировать два случайных числа так, чтобы первое было больше второго - C++
Приветствую, как реализовать создание двух рандомных чисел, чтобы первое число было обязательно больше второго? вот мой код #include...

Переставить цифры местами так, чтобы получилось большее число - C++
Дано число. Если можно переставить его цифры так, чтобы получилось большее число, выведите YES, в противном случае выведите NO....

В числе *4**3 дописать три цифры так, чтобы полученное число делилось на 15 - C++
В числе *4**3 дописать три цифры так, чтобы полученное число делилось на 15.

Переставить цифры в этом числе так, чтобы получить наименьшее из чисел - C++
Задача такая: Задано натуральное N, состоящее не более, чем из 6 цифр. Переставить цифры в этом числе так, чтобы получить наименьшее из...


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

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

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