Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 03.05.2011, 11:18   #1
vityai_911
Новичок
Джуниор
 
Регистрация: 03.05.2011
Сообщений: 3
По умолчанию сдвиг столбца матрицы циклически

дана матрица. сдвинуть столбец с макс эл-ом циклически вправо на кол-во, равное макс эл. матрицы.
vityai_911 вне форума Ответить с цитированием
Старый 03.05.2011, 11:27   #2
vityai_911
Новичок
Джуниор
 
Регистрация: 03.05.2011
Сообщений: 3
По умолчанию

void main()
{
int mass[20] [20];
cout<<"vvedi razmer matricy n-strok m-stolbcov"<<"\n";
int n,m; cin>>n>>m;
cout<<"vvedi elementy matricy"<<"\n";
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
cin>>mass [i] [j];
int max=mass[0] [0];//max- ctolbec c max elementom
int Mmax=0;//номер столбца с макс элементом
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
if (max<mass[i] [j])
{ max=mass[i] [j];Mmax=j;};

cout<<"stolbec c max elementom:"<<"\n"; //vivodim stolbec c max elementom
for (int i=0;i<n;i++)
cout<<mass[i][Mmax]<<"\n";

int a=max%m;cout<<a;
cout<<"sdvig stolbca s max el-om"<<"\n";
for (int i=0;i<n;i++)
for (int j=0;j<m;j++);//здесь должнен быть циклицеский сдвиг на а элементов как сделать, подскажите???

getch();//107 ===>>071
856 568 должно делать примерно так, как я понял...
730 307

Последний раз редактировалось vityai_911; 03.05.2011 в 11:50.
vityai_911 вне форума Ответить с цитированием
Старый 03.05.2011, 11:33   #3
vityai_911
Новичок
Джуниор
 
Регистрация: 03.05.2011
Сообщений: 3
По умолчанию

блин не умею пользоваться форумом
vityai_911 вне форума Ответить с цитированием
Старый 04.05.2011, 04:20   #4
Trust_357
Пользователь
 
Регистрация: 10.03.2011
Сообщений: 68
По умолчанию

Массив нада использовать динамический так как Ты вводишь его размерность
Инициализацию лучше сделать используя rand сгенерировать, что бы код писать нажимай решётку выше поля сообщения. Вот твоё
Если захочешь ручками инициализировать, измени функцию Init
Код:
#include<time.h>
#include<iostream>
using namespace std;
void Show(int **mas,int n, int m)
{
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
			cout<<mas[i][j]<<"\t";
		cout<<endl;
	}
	cout<<"\n\n";
}
void Init(int **mas,int n,int m)
{
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
			mas[i][j]=rand()%5;//захочешь изменить диапазон чисел инициализации, измени цыфру
	}
}
void Sdvig(int **mas,int n,int m)
{
	int max=mas[0][0],ind=0,t=0,s=0;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			if(max<mas[i][j])
			{
				max=mas[i][j];
				ind=j;
			}
		}
	}
	if(ind+max+1>m)
		s=m-1;
	else
		s=max+ind;
	cout<<ind<<endl;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			if(j>=ind&&j<m-1&&j<s)
			{
				t=mas[i][j];
				mas[i][j]=mas[i][j+1];
				mas[i][j+1]=t;
			}
		}
	}
	Show(mas,n,m);
}
void main()
{
	setlocale(LC_CTYPE, "Rus");
	srand((unsigned)time(NULL));
	int n=0,m=0;
	cout<<"\t\tВведите колличество строк\n\n";
	cin>>n;
	cout<<"\t\tВведите колличество столбцов\n\n";
	cin>>m;
	int **mas=new int*[n];//Объявление двумерного массива
	for(int i=0;i<n;i++)//первым делом выделяется память под массив указателей,
		mas[i]=new int[m];//потом в цикле под каждую строку
	Init(mas,n,m);
	Show(mas,n,m);
	Sdvig(mas,n,m);
	for(int i=0;i<n;i++)//динамический массив необходимо
		delete[]mas[i];//удалять после использования
	delete[]mas;
}

Последний раз редактировалось Trust_357; 04.05.2011 в 04:28.
Trust_357 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
матрицы.сдвиг pascal zyko Помощь студентам 4 18.11.2011 18:02
C++.циклический сдвиг элементов квадратной матрицы arsalan Помощь студентам 1 11.05.2010 07:08
Сумма четных элементов матрицы. Произведение элементов 3-го столбца. Минимальный элемент матрицы. renovare Помощь студентам 2 03.07.2009 20:13
C++|Циклический сдвиг матрицы|Шаблоны|Перегрузка Troi666 Помощь студентам 2 01.05.2009 13:46
Циклический сдвиг строки матрицы Alex1991 Помощь студентам 1 14.04.2009 20:20


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS