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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2021, 02:31   #1
kottion
Пользователь
 
Регистрация: 24.10.2021
Сообщений: 10
По умолчанию программа на си\си++

Доброго времени суток, в чем моя проблема - сам не знаю
посоветуйте пожалуйста , что делать
написал программу, но моих тестах работает отлично
на при отправке на сайт проверки выдает runtime error(школа программистов задча 0272)
вот задание и мой код на си


Код:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//функция,которая ничего не возращает, так как работает с указателями))))
//на вход поступает указатель на массив и длинна миссива и идентификатор четности, от него будет зависить порядок сортировки массива
//дале обычный пузырек наоборот(сортирует от большего к меньшего, так легче для дальнейшей работы)
//подпрограмму я здесь ввел для более легкой работы с кодом
void sort_mass(int* a,int len_mass, int h)
{
	for (int i = 0; i < len_mass; i++)
	{
		for (int j = 0; j < len_mass - 1;j++)
		{
			if (h % 2 == 0) 
			{
				int* ptr_j = &a[j];
				int* ptr_j1 = &a[j + 1];
				if (*ptr_j < *ptr_j1)
				{
					int tmp = *ptr_j;
					*ptr_j = *ptr_j1;
					*ptr_j1 = tmp;
				}
			}
			else
			{
				int* ptr_j = &a[j];
				int* ptr_j1 = &a[j + 1];
				if (*ptr_j > *ptr_j1)
				{
					int tmp = *ptr_j;
					*ptr_j = *ptr_j1;
					*ptr_j1 = tmp;
				}
			}
		}
	}
}



int main()
{
	int n, h[2000], nonh[2000], i = 1, hu = 0, nonu = 0;
	FILE* f = fopen("INPUT.txt", "r");
	while (fscanf(f, "%d", &n) == 1)
	{
		if (i % 2 == 0)
		{
			h[hu] = n;hu++;
		}
		else
		{
			nonh[nonu] = n;nonu++;
		}
		i++;
	}
	fclose(f);
	int chet = 2;
	sort_mass(h, hu, chet);
	chet = 1;
	sort_mass(nonh, nonu, chet);
	FILE* q = fopen("OUTPUT.txt", "w");
	fprintf(q,"%d", h[0] + nonh[0]);
	fclose(q);
	return 0;
}
Изображения
Тип файла: jpg 2021-11-21_02-28-15.jpg (99.3 Кб, 3 просмотров)

Последний раз редактировалось BDA; 21.11.2021 в 03:36.
kottion вне форума Ответить с цитированием
Старый 21.11.2021, 03:44   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

Вы завели массивы по 2000 элементов, а в задаче количество вводимых чисел может быть 200000. Расширение массивов поможет с runtime, но, скорее всего, сортировка не уложится по времени. Лучше подумайте над решением, когда за один линейный проход отыскивается ответ. Когда введенный элемент сразу обрабатывается, а не сохраняется во временный массив.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 21.11.2021, 12:31   #3
kottion
Пользователь
 
Регистрация: 24.10.2021
Сообщений: 10
По умолчанию спасибо

да, я перешел с int на long long int и избавился полностью от массивов , код стал маленький и читабельный
спасибо)
kottion вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не запускается программа. Программа должна заполнить массив символом. Через процедуру. anasttb Паскаль, Turbo Pascal, PascalABC.NET 1 27.03.2017 18:31
нужна программа QControl программа для внутрилабораторного контроля качества Версия 5.5. миньен Софт 7 02.03.2014 00:28
Программа на Pascal в Lazarus и программа для одномерного массива целых чисел Yegorka Lazarus, Free Pascal, CodeTyphon 13 20.12.2012 18:02
Программа с применением записей и программа с применение множеств smert99 Помощь студентам 0 16.06.2011 23:14