0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 38

Присвоение значения случайному элементу массива

30.03.2014, 18:54. Показов 2274. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Такой вопрос. Вот есть у меня массив, скажем, A[10], состоящий из десяти элементов. Необходимо, что девять из десяти элементов имели равное значение (любое), а один из них - отличался от них. Вопрос в том, как сделать, чтобы этот элемент был не десятым по счёту, а рандомно выбранным?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.03.2014, 18:54
Ответы с готовыми решениями:

Присвоение значения элементу двумерного массива
Почему я могу сделать так: Coors = 2560.6301, Coors = -1289.7698, Coors = 1044.1250;, а так: Coors = { 2560.6301, -1289.7698, 1044.1250 };...

Указатели и классы: присвоение значения элементу массива, который является полем класса
Доброго времени суток, делал задание, где надо создать класс, полем которого будет массив указателей на другие массивы и перегрузить...

Присвоение значения элементу списка
Здравствуйте. У меня есть односвязный список состоящий фамилия, стиль, результат. В задании дано, что перед созданием нового узла...

13
Модератор
Эксперт С++
 Аватар для zss
13759 / 10954 / 6487
Регистрация: 18.12.2011
Сообщений: 29,212
30.03.2014, 19:04
C++
1
2
int num=rand()%8;
x[num]=drugoe;
0
Полярный
 Аватар для dimcoder
476 / 448 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
30.03.2014, 19:14
Лучший ответ Сообщение было отмечено Rvach_01 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    int A[10] = {0};
    A[rand()%10] = 1;
    for (int i = 0; i < 10; i++)
        cout << A[i] << " ";
    system("PAUSE>NULL");
}
1
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 38
30.03.2014, 19:40  [ТС]
Спасибо! Помогло!

Добавлено через 16 минут
Если я всё правильно понял, то
Цитата Сообщение от dimcoder Посмотреть сообщение
int A[10] = {0}; // тут ты присваиваешь всем элементам массива значение нуля
A[rand()%10] = 1; // а тут - рандомному элементу значение единицы
То почему тогда я, меняя нолик на двойку, не могу добиться вывода двоек? Выводит по-прежнему нули, единицу, но ещё и двойку добавляет, причём всегда первым элементом?
0
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
30.03.2014, 20:14
#include <iostream>
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <time.h>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    int A[10] = {0};
    int k=rand()%10;
    A[k]=2;
    for (int i = 0; i < 10; i++)
        cout << A[i] << " ";
    //system("PAUSE>NULL");
}
0
Полярный
 Аватар для dimcoder
476 / 448 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
30.03.2014, 20:54
Цитата Сообщение от Rvach_01 Посмотреть сообщение
То почему тогда я, меняя нолик на двойку, не могу добиться вывода двоек?
Тут надо будет перечислять все. Вот так:
C++
1
int A[10] = {2,2,2,2,2,2,2,2,2,2};
или
C++
1
2
3
int A[10];
    for (int i = 0; i < 10; i++)
        A[i] = 2;
А к нулю весь массив можно и так проинициализировать:
C++
1
a[10] = {};
0
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 38
30.03.2014, 21:03  [ТС]
Два твоих примера абсолютно идентичны. Работа программы одна и та же -> " 0 0 0 0 0 1 0 0 0 0". И другие комбинации нулей и единицы. Заменить единицу на нуль я понял как. А как заменить нули на единицы?
0
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
30.03.2014, 21:07
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <time.h>
#include <stdlib.h>
#include <iostream>
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    int A[10];
    for (int i = 0; i < 10; i++)
    A[i] = 5;
    int k=rand()%10;
    A[k]=2;
    for (int i = 0; i < 10; i++)
        cout << A[i] << " ";
    //system("PAUSE>NULL");
}
0
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 38
30.03.2014, 21:26  [ТС]
Одной проблемой меньше
Появилась другая.
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
37
38
39
40
41
42
43
44
45
46
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <Windows.h>
#include <conio.h>
 
using namespace std;
 
int A[25], B1[12], B2[12], i, x;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    srand(time(NULL));
    for (i = 0; i < 25; i++)
        A[i] = 2;
    A[rand() % 25] = 1;
 
    cout << "Массив А из 25 монет: ";
    for (i = 0; i < 25; i++)
        cout << A[i] << " ";
    cout << endl << endl;
 
    cout << "Массив B1 из 12 первых монет: ";
    for (i = 0; i < 12; i++)
    {
        A[i] = B1[i];
        cout << B1[i] << " ";
    }
    cout << endl << endl;
 
    cout << "Массив В2 из 12 других монет: ";
    for (i = 12; i < 24; i++)
    {
        A[i] = B2[i];
        cout << B2[i] << " ";
    }
    cout << endl << endl;
 
    for (i = 24; i < 25; i++)
        A[i] = x;
    cout << "Помещённая в резерв 25-ая монета: " << x << endl;
    system("pause>null"); 
}
Массив А выводит правильно. Массив В1 выводит почему-то из одних нулей, а массив В2 выводит: "12 0 0 0 0 0 0 0 три многозначных числа 0" и х = 0. А надо вывести элементы именно такие, как в A массиве. Что не так?
0
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
30.03.2014, 22:58
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
37
38
39
40
41
42
43
44
45
46
47
48
49
//#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <Windows.h>
#include <conio.h>
 
using namespace std;
 
int A[25], B1[12], B2[12], i, x;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    srand(time(NULL));
    for (i = 0; i < 25; i++)
        A[i] = 2;
    A[rand() % 25] = 1;
 
    cout << "Массив А из 25 монет: ";
    for (i = 0; i < 25; i++)
    cout << A[i] << " ";
    cout << endl << endl;
 
    cout << "Массив B1 из 12 первых монет: ";
    for (i = 0; i < 12; i++)
    for (i = 0; i < 12; i++)
    {
 
        B1[i] = A[i];
        cout << B1[i] << " ";
    }
    cout << endl << endl;
 
    cout << "Массив В2 из 12 других монет: ";
    for (i = 24; i >12; i--)
    for (i = 24; i >12; i--)
    {
       B2[i] = A[i];
       cout << B2[i] << " ";
    }
    cout << endl << endl;
 
    for (i = 24; i < 25; i++)
        x = A[i];
    cout << "Помещённая в резерв 25-ая монета: " << x << endl;
    system("pause>null");
}
0
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 38
30.03.2014, 23:16  [ТС]
Спасибо, вижу, где допустил просчёт.. Чувствую себя ничтожеством.. А зачем нужен цикл for в for?
0
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
30.03.2014, 23:22
Лучший ответ Сообщение было отмечено Rvach_01 как решение

Решение

Массивы заполняются в цикле.Просто присвоить не катит,нужно читать элемент, а потом присваивать.Поэтому и 2 цикла.Первым читаем вторым присваиваем.
1
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 38
30.03.2014, 23:25  [ТС]
Понял. Большое спасибо!
0
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
30.03.2014, 23:28
В вашем случае достаточно и по одному циклу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.03.2014, 23:28
Помогаю со студенческими работами здесь

присвоение значения элементу векторного класса
Написал я класс для массива (значений функции на отрезке): class DoubleArray { public: .... double operator (int index); ...

Присвоение элементу массива значения другого элемента этого же массива
Всем доброго времени суток! Возникла проблема следующего толка: пишу программу для определения кратчайших расстояний и кратчайших...

Обращение к случайному элементу одномерного массива
Приветствую! Как в VB обратиться к случайному элементу одномерного строкового массива из 10 значений? Читал про функцию...

Присвоение значения элементу структуры
Всем привет. Подскажите пожалуйста.... Хочу достать данные из TextBox-ов и присвоить их значения элементам структуры. Переменным типа...

Присвоение элементу значения через jQuery
Имеется скрипт &lt;script type=&quot;text/javascript&quot;&gt; $(function() { $(window).scroll(function(){ if ($(window).scrollTop() &lt; 200) ...


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

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

Новые блоги и статьи
CQRS (Command Query Responsibility Segregation) на Java
Javaican 12.05.2025
CQRS — Command Query Responsibility Segregation, или разделение ответственности команд и запросов. Суть этого архитектурного паттерна проста: операции чтения данных (запросы) отделяются от операций. . .
Шаблоны и приёмы реализации DDD на C#
stackOverflow 12.05.2025
Когда я впервые погрузился в мир Domain-Driven Design, мне показалось, что это очередная модная методология, которая скоро канет в лету. Однако годы практики убедили меня в обратном. DDD — не просто. . .
Исследование рантаймов контейнеров Docker, containerd и rkt
Mr. Docker 11.05.2025
Когда мы говорим о контейнерных рантаймах, мы обсуждаем программные компоненты, отвечающие за исполнение контейнеризованных приложений. Это тот слой, который берет образ контейнера и превращает его в. . .
Micronaut и GraalVM - будущее микросервисов на Java?
Javaican 11.05.2025
Облачные вычисления безжалостно обнажили ахиллесову пяту Java — прожорливость к ресурсам и медлительный старт приложений. Традиционные фреймворки, годами радовавшие корпоративных разработчиков своей. . .
Инфраструктура как код на C#
stackOverflow 11.05.2025
IaC — это управление и развертывание инфраструктуры через машиночитаемые файлы определений, а не через физическую настройку оборудования или интерактивные инструменты. Представьте: все ваши серверы,. . .
Инъекция зависимостей в ASP.NET Core - Практический подход
UnmanagedCoder 11.05.2025
Инъекция зависимостей (Dependency Injection, DI) — это техника программирования, которая кардинально меняет подход к управлению зависимостями в приложениях. Представьте модульный дом, где каждая. . .
Битва за скорость: может ли Java догнать Rust и C++?
Javaican 11.05.2025
Java, с её мантрой "напиши один раз, запускай где угодно", десятилетиями остаётся в тени своих "быстрых" собратьев, когда речь заходит о сырой вычислительной мощи. Rust и C++ традиционно занимают. . .
Упрощение разработки облачной инфраструктуры с Golang
golander 11.05.2025
Причины популярности Go в облачной инфраструктуре просты и одновременно глубоки. Прежде всего — поразительная конкурентность, реализованная через горутины, которые дешевле традиционных потоков в. . .
Создание конвейеров данных ETL с помощью Pandas
AI_Generated 10.05.2025
Помню свой первый опыт работы с большим датасетом — это была катастрофа из неотформатированных CSV-файлов, странных значений NULL и дубликатов, от которых ехала крыша. Тогда я потратил три дня на. . .
C++ и OpenCV - Гайд по продвинутому компьютерному зрению
bytestream 10.05.2025
Компьютерное зрение — одна из тех технологий, которые буквально меняют мир на наших глазах. Если оглянуться на несколько лет назад, то сложно представить, что алгоритмы смогут не просто распознавать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru