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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2013, 15:36   #1
Wongraven
 
Регистрация: 25.03.2013
Сообщений: 4
По умолчанию Сортировка массива на С++.

Задание.
Сортировать двумерный массив по возрастанию, методом выбора максимума, согласно данному рисунку.



Ввод матрицы осуществляется с клавиатуры. Напишите пожалуйста как это делается. Спасибо.
Wongraven вне форума Ответить с цитированием
Старый 25.03.2013, 16:07   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Буду краток: нарисованного не понял. Пусть есть вот такой двумерный массив:
Код:
1 3 3 6 2
4 7 3 9 7
4 4 4 7 4
5 6 1 9 0
Что должно получиться и почему?
Abstraction вне форума Ответить с цитированием
Старый 25.03.2013, 19:10   #3
Wongraven
 
Регистрация: 25.03.2013
Сообщений: 4
По умолчанию

Для примера лучше вот так взять 5 на 5 более наглядно, допустим есть матрица
введенная с клавиатуры:

5 6 1 9 2
3 5 2 8 4
0 3 7 2 1
9 4 3 8 2
6 1 0 5 7

а сортированная должна выйти вот так т.е верхний левый угол выше главной диагонали отсекаем и заменяем на значение 0, а ниже главной диагонали делаем
сортировку по столбцам.

0 0 0 0 1
0 0 0 2 2
0 0 0 5 2
0 1 3 8 4
6 4 7 8 7
Wongraven вне форума Ответить с цитированием
Старый 26.03.2013, 00:11   #4
Че Гевара
Форумчанин
 
Аватар для Че Гевара
 
Регистрация: 25.09.2012
Сообщений: 182
По умолчанию

Цитата:
левый угол выше главной диагонали отсекаем и заменяем на значение 0
Скажу по секрету - это:
0 0 0 0 1
0 0 0 2 2
0 0 0 5 2
0 1 3 8 4
6 4 7 8 7
побочная диагональ, а не главная
лови код
Код:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#define N 5
#define M 5

main()
{
setlocale(LC_ALL,"RUS");
int A[N][M], i, j, max, maxN, col, temp;
	for(i = 0;i < N;i++)
	{
		for(j = 0;j < M;j++)
		{
		printf("Введите элемент A[%d][%d]:\n",i ,j);//ввод матрицы
		scanf("%d", &A[i][j]);
		}
	}
	for(i = 0;i < N;i++)                              //обнуление элементов выше ПД
		for(j = 0;j < N - 1 - i;j++) A[i][j] = 0;//
/*сортировка*/
	for(col = 0;col < M;col++)//цикл по столбцам
	{
		for(i = N - 1;i >= N - 1 - col;i--)
		{
		max = A[i][col];
			for(j = i - 1;j >= N - 1 - col;j--)
			{
				if(max < A[j][col])
				{
				max = A[j][col];
				maxN = j;
				}
				if(A[i][col] != max)
				{
				temp = A[i][col];
				A[i][col] = max;
				A[maxN][col] = temp;
				}
			}
		}
	}
/*----------*/
printf("Матрица приняла вид:\n");
	for(i = 0;i < N;i++)
	{
		for(j = 0;j < M;j++)
		{
		printf("%d |",A[i][j]);
		}
	printf("\n");
	}
getch();
}
Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.
Brian W. Kernighan.

Последний раз редактировалось Че Гевара; 26.03.2013 в 00:13.
Че Гевара вне форума Ответить с цитированием
Старый 26.03.2013, 10:00   #5
Wongraven
 
Регистрация: 25.03.2013
Сообщений: 4
По умолчанию

С диагональю моя тупка(. Спасибо большое за код, как раз то что нужно.
Wongraven вне форума Ответить с цитированием
Старый 26.03.2013, 10:30   #6
Че Гевара
Форумчанин
 
Аватар для Че Гевара
 
Регистрация: 25.09.2012
Сообщений: 182
По умолчанию

Незачто, переделать ввод и вывод под плюсы думаю сам сможешь)
Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.
Brian W. Kernighan.
Че Гевара вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрая сортировка(сортировка Хоара). Сортировка фрагмента массива [C++] druger Помощь студентам 0 20.04.2012 15:49
сортировка массива feras Помощь студентам 5 23.05.2011 09:44
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
Сортировка массива gellalo Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 22.05.2010 18:27
Сортировка массива Kraven Общие вопросы Delphi 3 25.06.2008 18:22