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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2017, 17:48   #1
Bard.
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 19
Сообщение Работа с файлами в с/с++

Всем доброго дня. Необходима помощь в работе с файлами. Вся запись элементов в файлы и т.д. - понятна. Не могу разобраться с одним моментом. На вход дается массив в промежутке от 1 до 100:
Код:
 int main()
{
	int ary[size];
	srand(time(NULL));
	for (int i = 0; i < size; i++) 
	{
		ary[i] = rand() % 100 + 1;
		std::cout << std::setw(4) << ary[i];
	}
	
	_getch();
}
С этим я разобрался. Теперь мне необходимо провести выборку элементов из этого массива и записать элементы по этой выборке в следующем порядке: элементы массива, которые меньше 51 - в левый столбец, а те, которые больше - в правый столбец. Как данное можно осуществить?
Bard. вне форума Ответить с цитированием
Старый 23.04.2017, 18:13   #2
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Код:
for (int i = 0; i < size; i++) 
	{
		ary[i] = rand() % 100 + 1;
                if (ary[i] < 51)
		     std::cout << std::setw(4) << ary[i];
                else
       		     std::cout << "     | "<< std::setw(4) << ary[i];
	}
как то так, хотя вариантов много - это самый тупой (потому что дважды вывод и форматирование прям в нем).
Золотое правило - ничего не делай 2 раза, желательно всегда преобразоывать так, чтобы код 1 раз исполнялся. Тогда не запаришся с копиями.
alexzk вне форума Ответить с цитированием
Старый 23.04.2017, 18:23   #3
Bard.
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 19
По умолчанию

Тут я вчитался немного в задание, и исправил программу в том смысле, что создал динамический массив. Надеюсь на работоспособности вашего варианта не отразится :
Код:
int main()
{
	int *a;
	int i, n;
	system("chcp 1251");
	system("cls");
	std::cout << ("Введите размер массива: ");
	std::cin >> n;
	a = (int*)malloc(n * sizeof(int));
	srand(time(NULL));
	for (int i = 0; i < n; i++)
	{
		a[i] = rand() % 100 + 1;
		std::cout << std::setw(4) << a[i];
	}
	
	_getch();
}
Bard. вне форума Ответить с цитированием
Старый 23.04.2017, 18:30   #4
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

ох...ну не путаейте вы С и С++ в одной программе.
Сделайте уж все по ++


Код:
a = new int[n]
в конце
Код:
_getch();
delete [] a;
Обратите внимание на формат делете - это потому, что а массив.
В вашем примере нада дописать free(a) все равно.
Динамически созданное следует за собой удалять, когда уже не нужно.

Так же можно "оплюсить" и другие функции, типа ранд
http://www.cplusplus.com/reference/random/
да почти все там можно. Учитесь верно уж.

Последний раз редактировалось alexzk; 23.04.2017 в 18:34.
alexzk вне форума Ответить с цитированием
Старый 23.04.2017, 18:39   #5
Bard.
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 19
По умолчанию

Всё, огромное Вам спасибо и +10 к Вашей карме) Всё получилось)
Bard. вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лабораторная работа(очень простая) Структуры, работа с файлами yurda Фриланс 2 11.06.2016 08:44
Работа с файлами Dashbalzhin Общие вопросы C/C++ 10 26.04.2015 20:38
Работа с файлами: запись, добавление, чтение (найти ошибку в коде) / C для начинающих Надо создать программу для работы с файлами Konlor Общие вопросы C/C++ 2 18.05.2014 12:37
Работа с файлами mmf_Valya Помощь студентам 0 16.12.2012 19:08
Работа с файлами Dim@ Помощь студентам 1 26.12.2007 22:43