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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2009, 14:01   #1
Джед
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 28
По умолчанию Сортировка массива указателей

Вот мой код, он полностью рабочий (спс to Sazary) но при сдаче работы я вдруг узнал, что сортировать массив надо не по самому правому столбцу, а по среднему (тобишь по адресам)
Код:
#include "stdafx.h"
#include <cmath>
#include <ctime>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int i, n,*pmas,diapazon, minnum;
	unsigned int r;	
	char cont;

	do
	{		
		cout<<"Size pmas?\n";
		cin>>n;
		pmas=new int[n];	
	
		r=(unsigned int)time(NULL)%32767;
		srand(r);
		cout<<"diapazon=?";
		cin>>diapazon;
		cin.get();
		cout<<"min. number=?";
		cin>>minnum;
		cin.get();
		
	pmas=new int[n];	
	for(i=0;i<n;i++)
		*(pmas+i)=int(rand()/32767.*diapazon)+minnum;

	for(i=0;i<n;i++)
		cout<<pmas+i<<'\t'<<*(pmas+i)<<'\n';
	cout<<'\n';
		cin.get(); // создан исходный массив

	
	int a=0;
	for (int k=0;k<n;k++)
		if(*(pmas+k)>0)	a++;

	cout<<"kolich. polozhit. el.:"<<a<<endl;
	cin.get();

	int **pnew;
	pnew= new int *[a];//новый массив с количеством элементов А
	int j=0;
	for (int k=0;k<n;k++)
		if(*(pmas+k)>0)
			{
			 *(pnew+j)=(pmas+k);
			 j++;
			}


int tmp;
for(i=0; i<a-1; i++)
 for(j=i+1; j<a; j++)
  if(*(pnew+j)<*(pnew+i))
   {
    tmp = *(pnew+j);
    *(pnew+j) = *(pnew+i);
    *(pnew+i) = tmp;
   }// сортировка


	for(int y=0; y<a; y++)
	 cout<<pnew+y<<'\t'<<*(pnew+y)<<'\t'<<**(pnew+y)<<'\n';
	cin.get();
	 delete [] pnew;
	delete [] pmas;	
	cout<<"To continue -- <Enter>,to exit -- any symbol and <Enter>\n";
		cin.get(cont);
		
	}while (cont=='\n');
	
	return 0;
}
Джед вне форума Ответить с цитированием
Старый 02.06.2009, 14:07   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
int *tmp;
for(i=0; i<a-1; i++)
 for(j=i+1; j<a; j++)
  if(*(pnew+j)<*(pnew+i))
   {
    tmp = *(pnew+j);
    *(pnew+j) = *(pnew+i);
    *(pnew+i) = tmp;
   }// сортировка
Только вот что там сортировать-то? Они и так по порядку идут.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 02.06.2009, 14:12   #3
Джед
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 28
По умолчанию

Вот, спасибо. В старом варианте сортировались числа, а адреса шли по порядку, но они не были связаны между собой. Именно поэтомсу преподаватель и не принял работу. Большое спасибо.
Джед вне форума Ответить с цитированием
Старый 02.06.2009, 14:18   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Джед
В старом варианте сортировались числа, а адреса шли по порядку, но они не были связаны между собой.
А, ну да, там ведь обменивались значения..
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива Cpluser Общие вопросы C/C++ 4 04.03.2009 23:57
Сортировка массива ManU Помощь студентам 1 21.09.2008 10:41
Сортировка массива Kraven Общие вопросы Delphi 3 25.06.2008 18:22
Инициализация массива указателей. Непонятно !!! Adamant Общие вопросы C/C++ 2 05.11.2007 16:22
Сортировка массива vitalik007 Общие вопросы Delphi 2 22.09.2007 20:04