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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2011, 07:33   #1
TerraBlue
Новичок
Джуниор
 
Аватар для TerraBlue
 
Регистрация: 17.12.2011
Сообщений: 2
По умолчанию Вопрос по сортировке массива(с++)

Необходимо модифицировать массив таким образом что бы четные элементы по значению оказались в начале массива, порядок следования элементов относительно друг друга не изменять, а нечетные оказались в конце массива, порядок следования элементов относительно друг друга не изменять.
Вот код сортировки
Код:
int trash,j;
	for(i=0;i<10;i++)
	{
		if(arr[i]%2!=0)
		{
		trash=arr[i];
		for(j=i;j<9;j++)
			{
				arr[j]=arr[j+1];
			}
			arr[9]=trash;
		}
	}
	for(i=0;i<10;i++)
	{
		printf("%d ",arr[i]);
	}
Например при массиве с элементами {1,2,3,4,5,6,7,8,9,10} корректно выполнится только первая часть задания и массив примет следующий вид: {2,4,6,8,10,3,7,1,9,5}, а порядок следования по условию менять нельзя
Код всей программы:
Код:
#include <stdio.h>
#include <iostream>
using namespace std;
void main(void)
{
	long arr[10];
	int i;
	setlocale(LC_ALL,"Russian");
	for(i=0;i<10;i++)
		{
			printf("Введите arr[%d] ",i);
			scanf("%d",&arr[i]);
		}
	//Найти номер наибольшего элемента массива. Найти наименьшее значение в массиве
	int max, min, nMax;
	max=arr[0];
	min=arr[0];
	nMax=0;
	for(i=1;i<=9;i++)
		{
			if(arr[i]>=max){
				max=arr[i];
				nMax=i;}
		}
	for(i=1;i<9;i++)
		{
			if(arr[i]<min){ 
				min=arr[i];
			}
		}
	printf("Номер максимального элемента %d\n",nMax);
	printf("Наименьший элемент массива %d\n",min);
	/*2.	Модифицировать массив таким образом
	что бы четные элементы по значению оказались
	в начале массива, порядок следования 
	элементов относительно друг
	друга не изменять, а нечетные оказались в конце массива,
	порядок следования элементов относительно
	друг друга не изменять.*/
	int trash,j;
	for(i=0;i<10;i++)
	{
		if(arr[i]%2!=0)
		{
		trash=arr[i];
		for(j=i;j<9;j++)
			{
				arr[j]=arr[j+1];
			}
			arr[9]=trash;
		}
	}
	for(i=0;i<10;i++)
	{
		printf("%d ",arr[i]);
	}
 
	/*Отсортировать массив по возрастанию*/
	for(i=1;i<10;i++)
	{
		for(j=0;j<10-i;j++)
		{
			if(arr[j]>arr[j+1])
			{
				trash=arr[j];
				arr[j]=arr[j+1];
				arr[j+1]=trash;
			}
		}
	}
	for(i=0;i<10;i++)
	{
		printf("arr[%d]=%d\n",i,arr[i]);
	}
}
Прошу прощения
За огромные сообщения...
TerraBlue вне форума Ответить с цитированием
Старый 21.12.2011, 08:45   #2
TerraBlue
Новичок
Джуниор
 
Аватар для TerraBlue
 
Регистрация: 17.12.2011
Сообщений: 2
По умолчанию

Вопрос снят
Прошу прощения
За огромные сообщения...
TerraBlue вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка в сортировке массива gylayko Помощь студентам 0 15.11.2011 20:56
ассемблер вопрос по сортировке Стас_с Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 09.08.2011 07:05
Вопрос по сортировке многомерного массива monbaln PHP 3 06.09.2010 22:59
Задача по сортировке массива! Chester18 Помощь студентам 1 30.10.2009 19:31
Вопрос по сортировке Ermiss БД в Delphi 5 17.02.2008 17:32