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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2012, 09:50   #1
Анастасия10714
Пользователь
 
Регистрация: 30.10.2012
Сообщений: 10
Вопрос сортировка двумерного массива с++

нужно отсортировать двумерный массив в программе Visual Studio.с++. Сортировка по столбцам по убыванию. размерность массива любая. Должно получится типа
45 24 15
38 22 8
29 19 2
Подскажите как делать пожалуйста.
Буду очень благодарна
Анастасия10714 вне форума Ответить с цитированием
Старый 30.10.2012, 09:56   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

внизу темы смотрите

П.С. Хотя если вы просто зарегали еще один акк, то не поможет...
p51x вне форума Ответить с цитированием
Старый 30.10.2012, 10:09   #3
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

Размер благодарности? =) И в вашем примере все же не ясно как сортировать
1
2
3 - так или 1 2 3 так
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Старый 30.10.2012, 10:50   #4
Анастасия10714
Пользователь
 
Регистрация: 30.10.2012
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Helloween Посмотреть сообщение
Размер благодарности? =) И в вашем примере все же не ясно как сортировать
1
2
3 - так или 1 2 3 так
первый вариант..только по убыванию:
3
2
1
Анастасия10714 вне форума Ответить с цитированием
Старый 30.10.2012, 10:53   #5
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Пусть известно, что массив имеет размер MxN, и заполнен числами от 0 до MN-1. Напишите, в какой ячейке должно при этом находиться число k (0 <= k < MN).
Abstraction вне форума Ответить с цитированием
Старый 30.10.2012, 12:12   #6
Анастасия10714
Пользователь
 
Регистрация: 30.10.2012
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Пусть известно, что массив имеет размер MxN, и заполнен числами от 0 до MN-1. Напишите, в какой ячейке должно при этом находиться число k (0 <= k < MN).

а можно пожалуйста по подробнее, если вас конечно же это не затруднит)
Анастасия10714 вне форума Ответить с цитированием
Старый 30.10.2012, 12:25   #7
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Что именно непонятно в вопросе? Пусть у Вас есть массив массивов A, максимальный элемент - A[M-1][N-1], равен MN-1. Вопрос: в какой ячейке должен находиться элемент, равный k?
Abstraction вне форума Ответить с цитированием
Старый 30.10.2012, 12:25   #8
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

И так и эдак.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>


void sortSingleArr(int* ar,int size)
{
  bool ch;
  for(int i = 0; i < size; i++)
  {
	ch = false;
	for(int j = 0; j < size - i - 1; j++)
	{
	  if(ar[j] < ar[j+1])
	  {
		int tmp = ar[j];
		ar[j] = ar[j+1];
		ar[j+1] = tmp;
		ch = true;
      }
	}
	if(!ch) break;
  }
}

void sortVertical(int** arr, int size)
{
  bool ch;
  for(int i = 0; i < size; i++)
  {
	ch = false;
	for(int j = 0; j < size - i - 1; j++)
	  if(arr[j][0] < arr[j+1][0])
	  {
		int* tmp = arr[j];
		arr[j] = arr[j+1];
		arr[j+1] = tmp;
		ch = true;
	  }
	if(!ch) break;  
  } 
}

void printArr(int** ar, int x, int y)
{
  for(int i = 0; i < x; i++)
  {
	for(int j =0; j < y; j++)
	  printf("%4d",ar[i][j]);
	printf("%c",'\n');  
  }
}

int main()
{
  int m,n;
  printf("%s","m n:\n");
  scanf("%d %d",&m,&n);
  int** arr = new int*[m];
  srand(time(NULL));
  for(int i = 0; i < m; i++)
  {
	arr[i] = new int[n];
	for(int j = 0; j < n; j++)
	{
	  arr[i][j] = rand()%100 + 1;
	  printf("%4d",arr[i][j]);
	 }
	 printf("%s","\n");
  }
  for(int i = 0; i < m; i++)
	sortSingleArr(arr[i],n);
  printf("%c",'\n');	
  printArr(arr,m,n);
  sortVertical(arr,n);
  printf("%c",'\n');
  printArr(arr,m,n);
  for(int i = 0; i < m; i++)
      delete[] arr[i];
  delete [] arr;
  return 0; 
}
%c
Помог? Оставляем отзыв =)

Последний раз редактировалось Helloween; 30.10.2012 в 12:35.
Helloween вне форума Ответить с цитированием
Старый 30.10.2012, 13:01   #9
Анастасия10714
Пользователь
 
Регистрация: 30.10.2012
Сообщений: 10
По умолчанию

спасибо..но это же сортировка по строкам(
Анастасия10714 вне форума Ответить с цитированием
Старый 30.10.2012, 13:19   #10
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

Вообще то и по строкам и по столбцам. Какая формулировка задания таково и решение. =)
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
с++ сортировка двумерного массива Мартышлюшка Общие вопросы C/C++ 2 30.10.2012 00:24
Сортировка двумерного массива. victor5133 PHP 2 19.05.2012 20:18
Сортировка двумерного массива Расим Помощь студентам 7 15.12.2009 22:29
Сортировка двумерного массива(С) Александр Елис Помощь студентам 1 31.10.2009 13:25
сортировка двумерного массива cornholio Помощь студентам 1 27.11.2007 23:36