Форум программистов, компьютерный форум CyberForum.ru

Циклический сдвиг матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сделать строки класса стринг в консоли (слова, в которых сразу после каждой гласной буквы стоит хотя бы одна согласная) http://www.cyberforum.ru/cpp-beginners/thread908477.html
Разработайте программу, запрашивающую строки, слова которых разделены пробелами и знаками препинания и выводящую в столбик, слова этой строки, обладающие указанными свойствами, или сообщение «таких слов нет». Слова, в которых сразу после каждой гласной буквы стоит хотя бы одна согласная. помогите пожалуйста,не могу решить
C++ Вывести матрицу в файл Собственно, доброго утра! Вопрос в следующем, на функции я вынос в файл сделал, но как вывести исходную матрицу в файл? Заранее спасибо! #include <stdio.h> #include <conio.h> #include <iostream.h> #include <iomanip.h> #include <math.h> FILE *f; const int MAX = 10; void Print(int a, int n) { http://www.cyberforum.ru/cpp-beginners/thread908474.html
Найти разницу между средним арифметическим положительных и отрицательных элементов столбцов с нечётными номерами матрицы C++
Доброго времени суток! Ребята, подскажите пожалуйста, что это за бредятина и чего хочет от меня преподаватель?) Дали на контрольную работу задание. Уже трижды голову сломал. Сдать нужно завтра, как всегда придержал на последний срок.(( Найти разницу между средним арифметическим положительных и отрицательных элементов столбцов с нечётными номерами матрицы А(7,10). У меня из выше...
input»word: необъявленный идентификатор C++
#include "stdafx.h" #include <iostream> #include <fstream> #include <cstring> using namespace std; int main() { char word;
C++ Последовательное выполнение команд http://www.cyberforum.ru/cpp-beginners/thread908461.html
Доброго времени суток. Перейду сразу к сути: необходимо написать программу, работающую в активном окне, которая при нажатии определенной(задаваемой пользователем) клавиши посылала сигнал о нажатии определенной последовательности. Грубо говоря, при нажатии клавиши "Д" программа сначала нажимает "и", потом, допустим "F2", а потом снова "и". А при следующем нажатии выполнялась другая...
C++ сравнить первые 5 чисел после запятой 2 результатов Help me! Сравнить первые 5 чисел после запятой в 2 результатах. В коде: //--------------------------------------------------------------------------- #pragma hdrstop //--------------------------------------------------------------------------- подробнее

Показать сообщение отдельно
Dreeni
48 / 0 / 1
Регистрация: 02.06.2013
Сообщений: 141
Записей в блоге: 2

Циклический сдвиг матрицы - C++

21.06.2013, 07:05. Просмотров 558. Ответов 9
Метки (Все метки)

Есть динамическая матрица, и есть обычный сдвиг на N элементов на право.
как сделать сдвиг по рисунку?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdlib.h>
#include <iostream>
#include <stdio.h>
using namespace std;
void shiftRight( int **matrix, int rows, int columns, int shift);
 
 
int main()
{
   int rows,columns,shift,i,j;
   int **matrix;
   cout<<"Введите количечтво строк ";
   cin>>rows;
   cout<<"Введите количество столбцов ";
   cin>>columns;
   //случайное заполнение
   //и вывод двумерного массива
   matrix = ( int ** ) malloc( rows * sizeof (int *) );
   for(i=0;i<rows;++i)
   {
      matrix[i] = (int *)malloc( columns * sizeof (int) );
      for(j = 0; j < columns; ++j)
      {
         matrix[i][j]= -50 + rand()%100;
         cout<<matrix[i][j]<<"\t";
      }
      cout<<"\n";
   }
 
   cout<<"На сколько элементов произвести циклический сдвиг?: ";
   cin>>shift;
   shiftRight( matrix, rows, columns, shift );
   cout<<"\n";
 
   for( i = 0; i < rows; ++i )
   {
      for( j = 0; j < columns; ++j )
         cout<<matrix[i][j]<<"\t";
      cout<<"\n";
   }
 
   for( i = rows - 1; i >= 0; --i )
      free( matrix[i] );
   free( matrix );
 
   return 0;
}
 
 
void shiftRight( int **matrix, int rows, int columns, int shift )
{
   int i;
   int MATRIX_SIZE = rows * columns;
   shift = shift % MATRIX_SIZE;
 
   if ( shift == 0 )
      return;
 
   int *temp_matrix = (int *) malloc( MATRIX_SIZE * sizeof (int) );
 
   for ( int i = 0; i < MATRIX_SIZE; ++i )
   {
      temp_matrix[i] = matrix[ i / columns ][ i % columns ];
   }
 
   for (i = 0; i < MATRIX_SIZE; ++i )
   {
      matrix[i / columns] [i % columns] = temp_matrix[(i + MATRIX_SIZE - shift) % MATRIX_SIZE];
   }
 
   free( temp_matrix );
}
Миниатюры
Циклический сдвиг матрицы  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru