Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2016, 21:40   #11
Narsky
Форумчанин
 
Регистрация: 21.06.2016
Сообщений: 109
По умолчанию

Код:
while (M > 0)
	{
		for (int i = 0; i < N; i++)
		{
		}
		M--;
	}
А как сделать так, чтобы элементу S[i] давалось значение либо S[i], либо -1? Не могу понять.
Цитата:
И учти, что когда ты сделаешь мной выше написанное - то ты сделаешь только половину своего задания - ведь тебе нужно еще показать работу с *bat файлом.

Может быть лучше сделать небольшое меню, где пользователь будет выберать с каким типом файла он хотел бы работать .
Эм, зачем? Разве нельзя просто объявить второй текстовый файл, такой же как и первый, открыть его, поместить туда измененнный массив S[i] и вывести его на экран?
Цитата:
Записать в текстовый файл ряд целых чисел 0, 1, 2…N, затем M раз случайным образом заменить элементы на -1. Числа N, M вводятся пользователем.
Narsky вне форума Ответить с цитированием
Старый 28.06.2016, 21:43   #12
Narsky
Форумчанин
 
Регистрация: 21.06.2016
Сообщений: 109
По умолчанию

Я думаю, что нужно в двоичном, также как и в примере, т.к. результат программы мне нужно выводить только на консоли, без использования текстового редактора.
Narsky вне форума Ответить с цитированием
Старый 28.06.2016, 22:02   #13
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Знаешь, наверно тебе нужно только M-раз заменить элемент массива на -1,
т.е.

Код:
while (M > 0)
{
    M--;
}

Теперь по поводу замены. У тебя в примере есть строчка: srand(time(NULL));

А теперь посмотри здесь и скажи мне, что ты понял

http://ci-plus-plus-snachala.ru/?p=15
ura_111 вне форума Ответить с цитированием
Старый 28.06.2016, 22:12   #14
Narsky
Форумчанин
 
Регистрация: 21.06.2016
Сообщений: 109
По умолчанию

То есть без for что ли? Разве не в нем должен будет выполняться рандомный выбор?

Вместо NULL подставить 0?)
Может быть так нужно написать:
Код:
cout << rand()%0+S[i];
Narsky вне форума Ответить с цитированием
Старый 28.06.2016, 22:21   #15
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Короче ты читать мою ссылку не хочешь.
Ладно.

отдельно создай проекти и введи

Код:
#include <stdlib.h> 
#include <time.h>
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
	srand(time(0));
	for (int i = 0; i < 20; i++)
	{
		cout << rand() % 200;
		cout << endl;
	}
	_getch();
	return 0;
}

Что вывело, какие выводы?
Будем разбираться, что такое
cout << rand() % 200;
Ты мог это прочитать, но не захотел. Хорошо давай на практике смотреть.

Последний раз редактировалось ura_111; 28.06.2016 в 22:25.
ura_111 вне форума Ответить с цитированием
Старый 28.06.2016, 22:29   #16
Narsky
Форумчанин
 
Регистрация: 21.06.2016
Сообщений: 109
По умолчанию

20 рандомных чисел с диапазоном от 0 до 199.
Я это понимаю, но в программе должен быть выбор между двумя значениями: -1 и S[i], так?
Может быть нужно присвоить значение -1 = 0 и S[i] = 1, и тогда выбрать N чисел с диапазоном от 0 до 2? Но как это сделать?
Narsky вне форума Ответить с цитированием
Старый 28.06.2016, 22:33   #17
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Хорошо.

Я думаю, надо случайно находить индекс i в массиве (и это делать М-раз), а уж присвоить A[i]=-1 легко.

i= rand() % N;
A[i]=-1;


Я могу ошибаться.

А что ты думаешь по этому поводу?

Последний раз редактировалось ura_111; 28.06.2016 в 22:41.
ura_111 вне форума Ответить с цитированием
Старый 28.06.2016, 22:51   #18
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Ну что ты молчишь?
Заснул что ли?

Я думаю, надо случайно находить индекс i в массиве (и это делать М-раз), а уж присвоить A[i]=-1 легко.

while (M > 0)
{
i= rand() % N;
A[i]=-1;
M--;
}


Я могу ошибаться.

А что ты думаешь по этому поводу?
ura_111 вне форума Ответить с цитированием
Старый 28.06.2016, 22:54   #19
Narsky
Форумчанин
 
Регистрация: 21.06.2016
Сообщений: 109
По умолчанию

Я думаю, что ты прав, твоя конструкция правильная. Но как её "вставить" в код? По идее, нужен цикл for, чтобы такую конструкцию накладывать на каждый элемент массива, но там будет что-то вроде...
Код:
while (M > 0)
	{
		for (int i = 0; i < N; i++)
		{
                     i= rand() % N;
                     A[i]=-1;
		}
		M--;
	}
Narsky вне форума Ответить с цитированием
Старый 28.06.2016, 22:57   #20
Narsky
Форумчанин
 
Регистрация: 21.06.2016
Сообщений: 109
По умолчанию

Во второй конструкции получается, что за каждый раз (а их М) будет меняться только один элемент массива, причем 100%, при этом N > M всегда. Я думаю, что программа должна подразумевать, что уже допустим в 1 раз 5 из 9 элементов поменяются, во второй оставшиеся два...
Narsky вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическая память dykee Помощь студентам 2 27.02.2014 01:52
Динамическая память. spotmc13 Паскаль, Turbo Pascal, PascalABC.NET 5 20.09.2010 17:08
Динамическая память PaulSev Общие вопросы Delphi 12 25.03.2010 09:07
динамическая память zhenya.ya Помощь студентам 2 24.02.2010 20:58
динамическая память aka_faith Общие вопросы C/C++ 47 12.06.2009 12:35