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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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
Репутация: 10
По умолчанию

блин не умею пользоваться форумом
vityai_911 вне форума   Ответить с цитированием
Старый 04.05.2011, 05:20   #4
Trust_357
Форумчанин
 
Регистрация: 11.03.2011
Адрес: Украина Днепродзержинск
Сообщений: 68
Репутация: 10
По умолчанию

Массив нада использовать динамический так как Ты вводишь его размерность
Инициализацию лучше сделать используя 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
матрицы.сдвиг 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


17:16.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.