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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2016, 12:20   #31
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Я вижу ты вообще ничего не понимаешь в файлах. Ладно. Протестируй.


Код:
#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <time.h>
#include <stdlib.h>
using namespace std;

int main()
{
	setlocale(0, "rus");

	FILE *file;
	char *fname1 = "INPUT.txt";
	char *fname2 = "OUTPUT.txt";

	int S[200];
	for (int i = 0; i < 200; i++)
	{
		S[i] = 0;
	}

	int N, M, k;
	cout << "Введите N: ";
	cin >> N;
	cout << "Введите M: ";
	cin >> M;

	// Запись в файл INPUT.txt
	file = fopen(fname1, "w");
	for (int i = 0; i < N-1; i++)
	{
		fprintf(file, "%i ", i);
	}
	fprintf(file, "%i", (N-1));
	fclose(file);
	///////////////

	// Чтение из файла INPUT.txt и вывод на экран		
	file = fopen(fname1, "r");
	fseek(file, 0, SEEK_SET);
	cout << "\nИсходный массив чисел, записанный в INPUT.txt:\n";
	k = 0;
	while (!feof(file))
	{
		fscanf(file, "%i", &S[k]);        	// Чтенеие из INPUT.txt			
		cout << " " << S[k];
		k++;
	}
	fclose(file);
	/////////////////////////////////
	
	// Замена на значений -1
	cout << "\n\nБыла сделана замена М-раз\n";
	srand(time(NULL));
	while (M > 0)
	{
		k = rand() % N;
		S[k] = -1;
		M--;
	}

	// Запись в файл OUTPUT.txt
	file = fopen(fname2, "w");
	for (int i = 0; i < N - 1; i++)
	{
		fprintf(file, "%i ", S[i]);
	}
	fprintf(file, "%i", S[N-1]);
	fclose(file);
	
	// Чтение из файла OUTPUT.txt и вывод на экран		
	file = fopen(fname2, "r");
	fseek(file, 0, SEEK_SET);
	cout << "\nРезультирующий массив чисел, записанный в OUTPUT.txt:\n";
	k = 0;
	while (!feof(file))
	{
		fscanf(file, "%i", &S[k]);        	// Чтенеие из OUTPUT.txt			
		cout << " " << S[k];
		k++;
	}
	fclose(file);
	/////////////////////////////////
	
	printf("\n\nЯ ВСЕ!  Для выхода нажми любую клавишу...");
	if (!_getch()) _getch();
	return 0;
}

Особенно смотри в сами файлы OUTPUT и INPUT и сравнивай с тем, что вывело на экран (одинаково ли?).
А что будет если M>N?


дОЛЖНО ПОЛУЧИТСЯ ТАКОЕ



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

Да, ты прав, я совсем ничего не понимаю в файлах, мы их даже не проходили)
В первый раз вывело последовательность чисел, во второй - некоторые числа из последовательности были заменены на -1
Если M > N, то будет вероятность, что все числа в последовательности будут заменены на -1, и чем больше М, тем больше эта вероятность, так? А если M < N, то вероятность, что все числа будут заменены на -1 = 0%
Narsky вне форума Ответить с цитированием
Старый 29.06.2016, 12:46   #33
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Ну что ты протестировал? Все ли работает?
ura_111 вне форума Ответить с цитированием
Старый 29.06.2016, 13:05   #34
Narsky
Форумчанин
 
Регистрация: 21.06.2016
Сообщений: 109
По умолчанию

Да, все работает, спасибо большое)
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