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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2015, 23:19   #1
Ween24
Новичок
Джуниор
 
Регистрация: 25.10.2015
Сообщений: 8
Вопрос

Даны два убывающие массива, сделать один возрастающий, сортировать полученный массив нельзя.
Вот что у меня получилось:
Код:
int main(void)
{	float  a[50], b[50], c[50];
	int i, j, n, m,k, u;
	printf("N,M\n");
	scanf_s("%d, %d", &n, &m);//ввод длины массивов
	u = n + m; printf("Chisla pervogo massiva cherez enter\n");
	for (i = 1;i <= n;i++)   scanf_s("%f", &a[i]);//первый массив
	printf("Chisla vtorogo massiva cherez enter\n");
	for (j = 1;j <= m;j++) scanf_s("%f", &b[j]);//второй массив
	 k = 0;
	for (; n >= 0 || m >= 0;n--) { //пока есть элементы массивов
		for (; m >= 0 && (n < 0 ||  a[n]>b[m]); m--)//сортировка
			c[k++] = b[m]; //элементы и хвост второго
		if (n >= 0 ) c[k++] = a[n];	} //элементы и хвост первого
	printf("\n");
	for (i = 0;i <= u;i++) printf("%f\n", c[i]);//вывод массива
		_getch();
		return 0;
}
Что происходит? Берутся два последних элемента данных массивов, сравниваются и присваиваются по возрастанию в новый, дальше двигается все это от конца к началу, пока не закончится какой-нибудь массив, хвост оставшегося массива прицепляется в конце нового массива.
Ошибка где-то в первом сравнивании, пропускается один элемент и заполняется машинным мусором. Как написать по-другому, без ошибки, не знаю

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

Последний раз редактировалось Stilet; 26.10.2015 в 08:58.
Ween24 вне форума Ответить с цитированием
Старый 25.10.2015, 23:43   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

а почему у тебя результирующий массив того же размера? он жэж должен быть в 2 раза больше, не?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 25.10.2015, 23:46   #3
Ween24
Новичок
Джуниор
 
Регистрация: 25.10.2015
Сообщений: 8
По умолчанию

u = n + m; там все в порядке, только почему-то один элемент лишний
Ween24 вне форума Ответить с цитированием
Старый 25.10.2015, 23:52   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
u = n + m; там все в порядке, только почему-то один элемент лишний
это ты к кому обращаешься?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 25.10.2015, 23:54   #5
Ween24
Новичок
Джуниор
 
Регистрация: 25.10.2015
Сообщений: 8
По умолчанию

Это в выводе массива, печатается сумма величин элементов первого и второго массива

там n и m изменяются во время создания нового массива, поэтому... я сохранил их

Последний раз редактировалось Stilet; 26.10.2015 в 08:58.
Ween24 вне форума Ответить с цитированием
Старый 26.10.2015, 00:02   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Это в выводе массива, печатается сумма величин элементов первого и второго массива
там n и m изменяются во время создания нового массива, поэтому... я сохранил их
это ты к кому обращаешься?
почему у тебя результирующий массив того же размера? он жэж должен быть в 2 раза больше
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 26.10.2015, 00:03   #7
Ween24
Новичок
Джуниор
 
Регистрация: 25.10.2015
Сообщений: 8
По умолчанию

Не понимаю вопроса -_-

У меня выводится полностью массив, даже больше, где написано, что они одного размера?

Последний раз редактировалось Аватар; 26.10.2015 в 00:13.
Ween24 вне форума Ответить с цитированием
Старый 26.10.2015, 00:10   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
где написано, что они одного размера?
как это где??!!11 ВОТ:
Код:
	float a[50], b[50], c[50];
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 26.10.2015, 00:11   #9
Ween24
Новичок
Джуниор
 
Регистрация: 25.10.2015
Сообщений: 8
По умолчанию



это количество ячеек, отводящихся под массив

Последний раз редактировалось Stilet; 26.10.2015 в 08:58.
Ween24 вне форума Ответить с цитированием
Старый 26.10.2015, 00:15   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
это количество ячеек, отводящихся под массив
вот именно.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти ошибку в программе на С++ Jony217 Общие вопросы C/C++ 9 28.12.2011 21:53
Ошибку не могу найти в программе Веселина Паскаль, Turbo Pascal, PascalABC.NET 7 26.05.2011 20:44
Не могу найти ошибку в программе lioshenka Общие вопросы C/C++ 5 24.08.2009 11:38
Не могу найти ошибку в программе Dawystrik Общие вопросы Delphi 9 19.03.2009 21:19