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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2013, 13:04   #1
Foxlin
Пользователь
 
Регистрация: 05.12.2013
Сообщений: 16
По умолчанию В квадратной матрице сделать циклический сдвиг стобцов влево на 1

Саму матрицу я сделал, а как теперь сдвиг осуществить не понимаю
Код:
#include <iostream>
#include <clocale>
#include <conio.h>

using namespace std;

int main()
{
	setlocale (LC_ALL,"");
	int const N = 100; 
	int n, e = 0;
			
	printf ("Введите размер матрицы: ");
	scanf ("%d", &n);
	cout << endl;
	
	int a[N][N]; 
	int temp = a[0][0];
	for (int i=0; i<n; i++)
		for (int j=0; j<n; j++)		
		{
			printf("Введите элемент %d: ", e += 1);
			scanf ("%d", &a[i][j]);
		}
	
	cout << endl << "Введенная матрица:" << endl << endl;
	for (int i=0; i<n; i++)
	{
		for (int j=0; j<n; j++)
			printf ("%2d ", a[i][j]);
		cout << endl;
	}
	cout << endl;

	_getch();
	return 0;
	}
Foxlin вне форума Ответить с цитированием
Старый 22.12.2013, 13:11   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
int a[N][N];
int temp = a[0][0];
for (int i=0; i<n; i++)
А мы ещё спращивам, что такое Индусский код!
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 22.12.2013, 13:24   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как теперь сдвиг осуществить не понимаю
Думаю так:
Код:
for(int i=0;i<n;i++){
 int k=a[0][0];
 for(int j=1;j<n;j++) a[i][j-1]=a[i][j];
 a[i][n-1]=k;
}
Цитата:
А мы ещё спращивам, что такое Индусский код!
Прошу заметить: Индусы участвовали в разработке таких крутых систем как Фотошоп и Автокад. и... Интернет эксплорер
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.12.2013, 13:42   #4
Foxlin
Пользователь
 
Регистрация: 05.12.2013
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Думаю так:
Код:
for(int i=0;i<n;i++){
 int k=a[0][0];
 for(int j=1;j<n;j++) a[i][j-1]=a[i][j];
 a[i][n-1]=k;
}
Сдвиг осуществляется, однако выходит так:
Безымянный.jpg
Foxlin вне форума Ответить с цитированием
Старый 22.12.2013, 14:16   #5
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Прошу заметить: Индусы участвовали в разработке таких крутых систем как Фотошоп и Автокад. и... Интернет эксплорер
Вот и я о том-же .
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 22.12.2013, 14:45   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
однако выходит так:
Ну ладно я балбес с синдромом отсутствия внимательности, но ты хотя бы мог заметить ошибку? a[0][0] в цикле поменять надо. А теперь угадай с одного раза на что именно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.12.2013, 14:52   #7
Foxlin
Пользователь
 
Регистрация: 05.12.2013
Сообщений: 16
По умолчанию

Поменял...работает! Спасибо ОГРОМНОЕ
Код:
#include <iostream>
#include <clocale>
#include <conio.h>

using namespace std;

int main()
{
	setlocale (LC_ALL,"");
	int const N = 100; 
	int n, e = 0;
			
	printf ("Введите размер матрицы: ");
	scanf ("%d", &n);
	cout << endl;
	
	int a[N][N]; 
	int temp = a[0][0];
	for (int i=0; i<n; i++)
		for (int j=0; j<n; j++)		
		{
			printf("Введите элемент %d: ", e += 1);
			scanf ("%d", &a[i][j]);
		}
	
	cout << endl << "Введенная матрица:" << endl << endl;
	for (int i=0; i<n; i++)
	{
		for (int j=0; j<n; j++)
			printf ("%2d ", a[i][j]);
		cout << endl;
	}
	cout << endl;
   
	for(int i=0;i<n;i++)
	{
		int k=a[i][0];
		for(int j=1;j<n;j++) 
			a[i][j-1]=a[i][j];
		a[i][n-1]=k;
	
	}

	cout << endl << "Измененная матрица:" << endl << endl;
	for (int i=0; i<n; i++)
	{
		for (int j=0; j<n; j++)
			printf ("%2d ", a[i][j]);
		cout << endl;
	}
	cout << endl;


	_getch();
	return 0;
}
Foxlin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Срочно! Сделать сдвиг на один влево в квадратной матрице (язык C) Foxlin Помощь студентам 0 19.12.2013 18:54
как сделать циклический сдвиг в массиве на к елементов вправо и влево на язеке с++???? zvir Общие вопросы C/C++ 7 13.11.2012 03:37
Сдвиг элементов массива на 1 влево. Вывести матрицу в Memo Abrokadawr Помощь студентам 3 04.11.2011 23:13
Не получается циклический сдвиг элементов списка влево Джиксер Общие вопросы C/C++ 5 02.06.2010 23:38
C++.циклический сдвиг элементов квадратной матрицы arsalan Помощь студентам 1 11.05.2010 08:08