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

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

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

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

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

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

дана матрица. сдвинуть столбец с макс эл-ом циклически вправо на кол-во, равное макс эл. матрицы.
vityai_911 вне форума Ответить с цитированием
Старый 03.05.2011, 12: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 в 12:50.
vityai_911 вне форума Ответить с цитированием
Старый 03.05.2011, 12:33   #3
vityai_911
Новичок
Джуниор
 
Регистрация: 03.05.2011
Сообщений: 3
По умолчанию

блин не умею пользоваться форумом
vityai_911 вне форума Ответить с цитированием
Старый 04.05.2011, 05: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 в 05:28.
Trust_357 вне форума Ответить с цитированием
Ответ


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

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

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


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