Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Alik-Soldier
9 / 9 / 2
Регистрация: 01.05.2009
Сообщений: 127
#1

Задача с массивом

26.07.2009, 20:09. Просмотров 954. Ответов 13
Метки нет (Все метки)

Здравствуйте!Подскажите пожалуйста в решении такой задачи. Например есть кусок кода:
C++
1
2
3
4
5
6
int main(){
int mas[10];
for(int i=0;i<10;i++){
       mas[i]=i+1;
       cout<<mas[i]<<endl;}
}
Результат выполнения будет такой:
1
2
3
.....
10
А вопрос вот в чем: как нужно написать,чтобы в результате эти числа от 1 до 10 были напечатаны все в разном порядке,но не повторялись???...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2009, 20:09
Ответы с готовыми решениями:

Задача с массивом.
Требуется найти максимальный элемент массива, минимальный, среднее...

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

Задача с массивом
В массиве X(n) подсчитать количество положительных k1 и количество...

C++ задача с массивом
Сколько не старался не чего у меня с этими массивами не выходит. Вообще не как...

Задача с массивом
Дана такая задача : Все правильно показывает до 6-й степени двойки, а...

13
Sekt
157 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 637
26.07.2009, 20:13 #2
функция ранд и разброс от 0 до 10
0
Alik-Soldier
9 / 9 / 2
Регистрация: 01.05.2009
Сообщений: 127
26.07.2009, 20:15  [ТС] #3
Да знаю я функцию ранд...Делал...Надо чтобы все числа от 1 до 10 были,и не повторялись никак,я же написал...А в ранде такой шанс 1 из 10...Если не меньше
0
ISergey
Maniac
Эксперт С++
1408 / 919 / 148
Регистрация: 02.01.2009
Сообщений: 2,749
Записей в блоге: 1
26.07.2009, 20:18 #4
1. можно просто перемешать
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <algorithm>
int main()
{   
    int arr[10] = {1,2,3,4,5,6,7,8,9,10};
    std::random_shuffle(arr, arr + 10);
    for(int i = 0; i < 10; ++i)
        std::cout << arr[i] << ' ';
    std::cout << '\n';
 
    return 0;
}
2.http://www.cyberforum.ru/cpp-beginners/thread44753.html

std::random_shuffle
2
zim22
depict1
276 / 141 / 4
Регистрация: 11.07.2009
Сообщений: 606
26.07.2009, 20:27 #5
так ещё красивей будет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <iterator>
#include <algorithm>
 
int main()
{
  int arr[] = {1,2,3,4,5,6,7,8,9,10};
  const int size = sizeof(arr) / sizeof(*arr);
 
  std::random_shuffle(arr, arr + size);
  std::copy(arr, arr + size, std::ostream_iterator<int>(std::cout, "\n"));
 
  return 0;
}
0
AnonymC
1179 / 462 / 86
Регистрация: 23.06.2009
Сообщений: 6,375
Завершенные тесты: 1
26.07.2009, 21:14 #6
Цитата Сообщение от Alik-Soldier Посмотреть сообщение
Да знаю я функцию ранд...Делал...Надо чтобы все числа от 1 до 10 были,и не повторялись никак,я же написал...А в ранде такой шанс 1 из 10...Если не меньше
а ты пиши код что бы не повторилась!!!:

C
1
2
3
4
#include"time.h"
#include"windows.h"
srand((unsigned)time(NULL));
int a = rand()%10 + 1;
если не ошибаюсь ранд находится в виноусе
0
ISergey
Maniac
Эксперт С++
1408 / 919 / 148
Регистрация: 02.01.2009
Сообщений: 2,749
Записей в блоге: 1
26.07.2009, 21:18 #7
Цитата Сообщение от @lex Посмотреть сообщение
если не ошибаюсь ранд находится в виноусе
ошибаешься. он находится в stdlib.h
1
AnonymC
1179 / 462 / 86
Регистрация: 23.06.2009
Сообщений: 6,375
Завершенные тесты: 1
26.07.2009, 21:22 #8
тогда так

C
1
2
3
4
#include"time.h"
#include"stdlib.h"
srand((unsigned)time(NULL));
int a = rand()%10 + 1;
0
Alik-Soldier
9 / 9 / 2
Регистрация: 01.05.2009
Сообщений: 127
26.07.2009, 21:30  [ТС] #9
Цитата Сообщение от @lex Посмотреть сообщение
а ты пиши код что бы не повторилась!!!:

#include"time.h"
#include"windows.h"
srand((unsigned)time(NULL));
int a = rand()%10 + 1;
А разве так повторяться не будет???по моему будет
0
Sekt
157 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 637
26.07.2009, 21:30 #10
Да знаю я функцию ранд...Делал...Надо чтобы все числа от 1 до 10 были,и не повторялись никак,я же написал...А в ранде такой шанс 1 из 10...Если не меньше
Если повторится запустить еще раз rand для того индекса где повторилось
0
AnonymC
1179 / 462 / 86
Регистрация: 23.06.2009
Сообщений: 6,375
Завершенные тесты: 1
26.07.2009, 21:37 #11
Цитата Сообщение от Alik-Soldier Посмотреть сообщение
А разве так повторяться не будет???по моему будет
нет.Код
srand((unsigned)time(NULL));
для этого и нужен.

Добавлено через 1 минуту 6 секунд
Alik-Soldier,у тебя что рядом компилятора нету что ли?Попробуй мой код
0
mirso
526 / 344 / 45
Регистрация: 05.04.2009
Сообщений: 709
26.07.2009, 21:53 #12
Alik-Soldier,
Цитата Сообщение от Alik-Soldier Посмотреть сообщение
числа от 1 до 10 были напечатаны все в разном порядке,но не повторялись
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main()
{
int mas[10];
 
    for(int i = 0; i < 10; i++)
    {
       mas[i] = (i * 3)%10 + 1;
 
       cout << mas[i] << endl;
    }
 
system("pause");
return EXIT_SUCCESS;
}
1
Monte-Cristo
2796 / 1382 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
26.07.2009, 21:59 #13
Alik-Soldier, а вообще, о случайных числах можешь почитать тут.
1
odip
Эксперт С++
7161 / 3220 / 76
Регистрация: 17.06.2009
Сообщений: 14,161
26.07.2009, 22:05 #14
Читаем FAQ в данном разделе и не задаем одни и те же вопросы.
0
26.07.2009, 22:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2009, 22:05

Задача с целочисленным массивом
Всем привет. Задачка с курсов степика. Единственная, на которой застрял. Вроде...

Задача с двумерным массивом
Здравствуйте, помогите пожалуйста. Получить квадратную матрицу порядка n по...

Задача с указателем-массивом
Создайте такую программу: -вы вводите слово; -программа должна вывести...


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

Или воспользуйтесь поиском по форуму:
14
Закрытая тема Создать тему
Опции темы

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