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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2009, 01:17   #1
zord
Новичок
Джуниор
 
Регистрация: 18.11.2009
Сообщений: 3
По умолчанию [ C/C++ ] Перестановка строк и столбцов

Не могу справится с заданием, не выходит перестановка. Бьеюсь уже целый день, может тут кто-нить сможет помочь?
Цитата:
Дана вещественная матрица размером 7х4. Переставляя строки и столбцы добиться, чтобы наибольший элемент был в верхнем левом углу.
Набросал код, не хватает как раз самой перестановки (у меня хрень какая-то выходит).


Код:
#include <stdio.h>
#define N 50

int main (void)
{
	int matrix[N][N];
	int a,b,i,j,x,z,m,n,max,tmp,temp,c,count;
	a = 7;
	b = 4;
	tmp = 0;
//Заполнение массива значениями
	while (N<a);
	printf("Fills matrix...\n");
	for (i=0; i<b; i++)
	{
		for (j=0; j<a; j++)
		{
			tmp++;
			matrix[i][j] = tmp;
		}
	}
//Вывод массива
	printf ("Matrix looks like...\n");
	for (i=0; i<b; i++)
	{
		for (j=0; j<a; j++)
			printf ("%3.0i", matrix[i][j]);
			printf ("\n");
	}
//Нахождение наибольшего элемента матрицы
	printf ("Finding maximum value...\n");
	max = matrix[0][0];
	for (i=0; i<b; i++)
	{
		for (j=0; j<a; j++)
			if (matrix[i][j] > max)
			max = matrix[i][j];
	}
	printf ("Maximum matrix's value -> %.0i\n", max);
	printf ("MATRIX [0][0] = %3.0i\n", matrix[0][0]);
//Вывод массива
	c = 0;
	count = 0;
	for (i=0; i<b; i++)
	{
		for (c=0; c<6; c++)
		{
			temp = matrix[i][c];
			matrix[i][c] = matrix[i][c+1];
			matrix[i][c+1] = temp;
//			printf("TEMP = %i\n", temp);
		}
	}
//		for (j=0; j<a; j++)
//		{
//			for (c=0; c<a; c++)
//			{
//				temp = matrix[c][j];
//				matrix[c][j] = matrix[c+1][j];
//				matrix[c+1][j] = temp;
//				if (c < 3)
//					c = 0;
//			}
//		}
//		break;
	printf ("WIN = %i\n", matrix[0][0]);
	printf ("Matrix looks like...\n");
	for (i=0; i<b; i++)
	{
		for (j=0; j<a; j++)
			printf ("%3.0i", matrix[i][j]);
			printf ("\n");
	}			
}

Последний раз редактировалось zord; 18.11.2009 в 01:26.
zord вне форума Ответить с цитированием
Старый 18.11.2009, 08:02   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Так...когда ищешь максимальное лучше записывай и индексы максимального элемента..Ну а перестановка строки выглядит так
Код:
//imax,jmax строки и столбца максимального элемента,а-кол-во столбцов 
for(int i=0,temp=0;i<a;i++)
{
    temp=matrix[0][i];
    matrix[0][i]=matrix[imax][i];
    matrix[imax][i]=temp;
}
//аналогично перестановка столбца,b-кол-во строк
for(int i=0,temp=0;i<b;i++)
{
    temp=matrix[i][0];
    matrix[i][0]=matrix[i][jmax];
    matrix[i][jmax]=temp;
}
После этих перестановок максимальный элемент будет находиться в левом верхнем углу
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 18.11.2009, 12:20   #3
zord
Новичок
Джуниор
 
Регистрация: 18.11.2009
Сообщений: 3
По умолчанию

Спасибо, все работает.
zord вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перестановка столбцов bagfinder Паскаль, Turbo Pascal, PascalABC.NET 1 25.06.2009 19:28
Двумерный массив, перестановка столбцов с max и min элементами (pascal) Mirk Помощь студентам 2 25.05.2009 20:33
Перестановка столбцов матрицы и строки. MaGWaY_minsk Помощь студентам 3 06.02.2009 00:55
Матрица A состоит из 8 строк и 6 столбцов. вычесть из всех её строк, начиная со второй, первую строку Dimak24 Помощь студентам 1 19.12.2008 15:45
Перестановка строк матрице gotex Помощь студентам 1 24.11.2008 20:40