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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2010, 00:08   #1
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
Сообщение сортировка матрицы

Нужно отсортировать матрицу пузырем. Что у меня не так?

Код:
int main()
{
        
 
        printf("Input size N: ");
        scanf("%d", &n);
        printf("Input size M: ");
        scanf("%d", &m);
 
        int **matrica = (int **)malloc(n * sizeof(int *));
        
        for (i = 0; i < n; i++)
                matrica[i] = (int *)malloc(m * sizeof(int));
 
        
 
        for (i = 0; i < n; i++)
                for (j = 0; j < m; j++)
                        matrica[i][j] = rand() % 11;
 
        for(i = 0; i < n; i++)
        {
                for(j = 0; j < m; j++)
                        printf("%i ", matrica[i][j]);
 
                printf("\n");
        }
        	getch();
		printf("\n");
	int k;
	int b;

	//SORT!
		
	for(i=1;i<n;i++)
		for(j=0;j<n-i;j++)
		{
			if(matrica[i][j]>matrica[i][j+1])
			{
				 b=matrica[i][j];
				matrica[i][j]=matrica[i][j+1];
				matrica[i][j+1]=b;
			}
		}
	
   for(i = 0; i < n; i++)
        {
                for(j = 0; j < m; j++)
                        printf("%i ", matrica[i][j]);
 
                printf("\n");
        }
			
			system("PAUSE");
return 0;
}
zhenya.ya вне форума Ответить с цитированием
Старый 03.09.2010, 09:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

У тебя же двумерный массив, значит еще один цикл нужен.
Код:
	for(i=0;i<n;i++)
		for(int k=0;k<m;k++)
		for(j=0;j<(m-1);j++)
		{
			if(matrica[k][j]>matrica[k][j+1])
			{
				b=matrica[k][j];
				matrica[k][j]=matrica[k][j+1];
				matrica[k][j+1]=b;
			}
		}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.09.2010, 19:32   #3
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
По умолчанию

Большое спасибо, но почему сортируются только квадратные матрицы (2х2,4х4 и т.д.) ? Ругается на строку if(matrica[k][j]>matrica[k][j+1]) -не может вычислить matric[k].
zhenya.ya вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка матрицы Dartchuwak Помощь студентам 4 06.04.2010 15:49
Сортировка матрицы Eovin Помощь студентам 0 20.12.2009 15:36
c++ сортировка матрицы Aion Помощь студентам 10 15.05.2009 14:30