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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2011, 22:01   #1
daimonTM
Пользователь
 
Регистрация: 24.03.2010
Сообщений: 20
По умолчанию Сортировка. Видоизменить вывод результата!!!!

1)помогите .
2)задача состояла в том , что нужно положительные элементы стоящие на нечетных позициях упорядочить по возрастанию.
3)я нашел вроде программу , но есть проблема: выводится в результате строка с бывшими элементами,стоявшими на нечетных местах первоначального массива, но упорядоченно уже. А мне нужно, чтоб остальные элементы тоже в результате были. Надеюсь понятно изложено...
4)вот сам текстязык СИ)
#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
int a[12]={-1,4,22,-8,134,21,17,-12,90,25,100,-134};
int b[6], i, j, k, c;

//формирование подпоследовательности из подожительных элементов на
//нечетных позициях (с точки зрения человеческой, т.е. отсчет
//от первого соответствует нулевому в массиве)
for(i=0,k=0;i<12;i+=2)
if(a[i]>0)
{ b[k]=a[i];
k++;
}
//сортировка
for(i=0;i<k-1;i++)
for(j=i+1;j<k;j++)
if(b[j]<b[i])
{ c=b[i];
b[i]=b[j];
b[j]=c;
}
//вывод результата
cout<<"Original \n";
for(i=0;i<12;i++)
cout<<a[i]<<" ";

cout<<"\n Sorted \n";
for(i=0;i<k;i++)
cout<<b[i]<<" ";

cin.get();
return 0;
}
daimonTM вне форума Ответить с цитированием
Старый 22.03.2011, 23:20   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

на, если я правильно понял твою задачу
Код:
#include <stdio.h>
#include <stdlib.h>

int main ()
{
	int i, j, tmp;

	int mass[] = { -1, 4, 22, -8, 134, 21, 17, -12, 90, 25, 100, -134 };
	const int len = sizeof(mass) / sizeof(int);

	int **pMass = (int **) malloc(len * sizeof(int *));
	int len2 = 0;

	printf("old mass:\n");
	for (i = 0; i < len; i++)
		printf("%d ", mass[i]);

	for (i = 0; i < len; i += 2)
		if (mass[i] > 0)
			pMass[len2++] = &mass[i];

	for (i = 0; i < len2 - 1; i++) {
		for (j = i + 1; j < len2; j++) {
			if (*pMass[i] > *pMass[j]) {
				tmp = *pMass[i];
				*pMass[i] = *pMass[j];
				*pMass[j] = tmp;
			}
		}
	}

	printf("\nnew mass:\n");
	for (i = 0; i < len; i++)
		printf("%d ", mass[i]);

	free(pMass);

	return 0;
}
я сначала создал дополнительный массив указателей, куда положил указатели на сортируемые элементы, потом прошелся по этому массиву, отсортировал через указатели и вывожу исходный
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка методом пузырька: вывод результата по шагам masterlomaster Помощь студентам 5 23.02.2011 20:27
Вывод результата в Memo Giggs13 Общие вопросы Delphi 1 20.02.2011 12:56
вывод результата на порт В ТатьянаП Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 26.10.2010 07:28
Подсчет и вывод результата... sew960i Microsoft Office Excel 18 31.01.2010 14:04
Вывод результата по столбцам Mary_star SQL, базы данных 4 03.03.2008 13:15