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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2016, 22:59   #1
valodu
Пользователь
 
Регистрация: 06.02.2016
Сообщений: 34
По умолчанию Язык C. Задана целочисленная матрица размером NxM. Поменять местами максимальный и минимальный элемент каждой строки матрицы.

Задана целочисленная матрица размером NxM. Поменять местами максимальный и минимальный элемент каждой строки матрицы.

Вот что получилось, как дальше не знаю.Помогите!


Код:
int m,n,max,min;
	printf("Введите M и N: \n");
    scanf("%d %d",&m,&n);
	int q[n][m];
	for(int i=0; i<m; i++)
       {
               for(int j=0; j<n; j++)
		{
			scanf("%d", &q[i][j]);
		}
	}
valodu вне форума Ответить с цитированием
Старый 05.04.2016, 00:30   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
int min_j = 0, max_j = 0;
for (int j = 1; j < m; ++j)
    if (q[i][j] > q[i][max_j]) {
        max_j = j;
    } else if (q[i][j] < q[i][min_j]) {
        min_j = j;
    }
Теперь осталось обменять q[i][min_j] с q[i][max_j]. И проделать это с каждой строкой матрицы. Но это при условии, что минимальный и максимальный элементы представлены в единственном экземпляре в каждой строке.
И по вашему коду замечание - определитесь, по какой размерности размер N, а по какой - M.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 05.04.2016, 02:18   #3
Chainik!
Форумчанин
 
Регистрация: 10.11.2008
Сообщений: 120
По умолчанию

Цитата:
Сообщение от valodu Посмотреть сообщение
Задана целочисленная матрица размером NxM. Поменять местами максимальный и минимальный элемент каждой строки матрицы.
Код:
#include "stdafx.h"
#include "iostream"
#include "conio.h"

using namespace std;

//-------------------------------------------------------------------------------------------------------
void print(int **arr, int n, int m)
{
	for(int i = 0; i < n; i++)
	{
		for(int j = 0; j < m; j++)
			cout << " " << *(*(arr + i) + j) << " ";
		cout << endl << endl;
	}
}
//-------------------------------------------------------------------------------------------------------
void sl(int **arr, int n, int m)
{
	for(int i = 0; i < n; i++)
	{
		for(int j = 0; j < m; j++)
			*(*(arr + i) + j) = rand() % 10;
	}
}
//-------------------------------------------------------------------------------------------------------
void swapindex(int **arr, int n, int m)
{
	int min = 0;
	int max = 0;
	int jmax = 0;
	int jmin = 0;
	for(int i = 0; i < n; i++)
	{
		min = arr[i][0];
		max = arr[i][0];
		jmax = 0;
		jmin = 0;
		for(int j = 0; j < m; j++)
		{
			if(arr[i][j] > max) {max = arr[i][j]; jmax = j;}
			if(arr[i][j] < min) {min = arr[i][j]; jmin = j;}
			
		}
		int b = arr[i][jmax];
		arr[i][jmax] = arr[i][jmin];
		arr[i][jmin] = b;
	}
	
}
//-------------------------------------------------------------------------------------------------------
int main()
{
	setlocale(LC_CTYPE, "Rus");
	int n = 0, m = 0, **arr;
	cout << "Введите размер строк: ";
	cin >> n;
	cout << "\nВведите размер столбцов: ";
	cin >> m;
	arr = new int*[n];
	for(int i = 0; i < n; i++)
		*(arr + i) = new int[m];
	cout << "\nМатрица имеет вид: \n\n";
	sl(arr,n,m);
	print(arr,n,m);
	cout << "После форматирования имеем: \n\n";
	swapindex(arr,n,m);
	print(arr,n,m);
	for(int i = 0; i < n; i++)
		delete [] arr[i];
	delete [] arr;
	getch();
	return 0;
}
помог - жми на весы
Chainik! вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрица. Задана матрица X[N,N], где N<=15. В каждом столбце матрицы поменять местами минимальный элемент и элемент главной диагона _Marchel_ Паскаль, Turbo Pascal, PascalABC.NET 5 28.11.2015 16:23
Непрямоугольная матрица чисел. Сформировать матрицу, поменяв в каждой строке местами максимальный и минимальный элементы (язык C) малхаз Помощь студентам 5 14.02.2014 21:02
Задана матрица Am*n . Найти максимальный по модулю элемент матрицы. Переставить строки и столбцы матрицы (в Delphi) Natashakosmos Помощь студентам 3 12.01.2014 00:28
Задана матрица размером NxM. Определить k – количество “особых” элементов матрицы, считая элемент “особым”, если он больше суммы о Маленыч Общие вопросы Delphi 3 20.05.2013 00:08
Паскаль! поменять местами максимальный и минимальный элемент матрицы. wrmarw Помощь студентам 4 08.05.2010 13:06