/*
Реализовать следующее преобразование матрицы :
в выходную матрицу передать столбцы исходной
матрицы с четными номерами 1 2 3 4 -> 2 4
*/
#include <stdio.h>
#include <iostream>
#define N 4
using namespace std;
int main(){
int arr[N][N];
/****************************/
/* объявим выходную матрицу */
/****************************/
int out[N][N/2];
int i, j;
/* заполнение массива */
for ( i = 0; i < N; i++ ){
for ( j = 0; j < N; j++ ){
printf("arr[%d][%d] = ", i, j);
scanf("%d", &arr[i][j]);
}
}
printf("\n-----------------------\n");
printf("\nPervonachalnaya matrica\n");
/* вывод в виде матрицы */
for ( i = 0; i < N; i++ )
for ( j = 0; j < N; j++ )
printf( ( j < (N - 1) ) ? "%d\t" : "%d\n", arr[i][j]);
/******************************/
/* формируем выходную матрицу */
/******************************/
for ( i = 0; i < N; i++ )
for ( j = 1; j < N; j+=2 )
out[i][j/2]=arr[i][j];
printf("\n-----------------------\n");
printf("\nPosle\n");
/******************************/
/* печатаем выходную матрицу */
/******************************/
for ( i = 0; i < N; i++ )
for ( j = 0; j < N/2; j++ )
printf( ( j < (N/2 - 1) ) ? "%d\t" : "%d\n", out[i][j]);
system("pause");
return 0;
}
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
// Размерности матрицы
const size_t ROWS=5;
const size_t COLS=7;
// Заполняет матрицу случайными числами
template <class T,size_t Row,size_t Col>
void genMatrix(T (&matrix)[Row][Col])
{
T *item=reinterpret_cast<T*>(matrix);
const T *const end=reinterpret_cast<T*>(matrix)+Row*Col;
while(item!=end)
{
*item++=rand()%25;
}
}
// Печатает матрицу
template <class T,size_t Row,size_t Col>
void printMatrix(const char *const message,const T (&matrix)[Row][Col])
{
cout<<message<<endl;
for(size_t i=0;i<Row;++i)
{
for(size_t j=0;j<Col;++j)
{
cout<<setw(4)<<matrix[i][j]<<' ';
}
cout<<endl;
}
}
// Выбирает четные столбцы из src в dest
template <class T,size_t Row,size_t Col>
void selectEvenColumns(const T (&src)[Row][Col],T (&dest)[Row][Col/2])
{
for(size_t fromCol=1,toCol=0;toCol<Col/2;fromCol+=2,++toCol)
{
for(size_t row=0;row<Row;++row)
{
dest[row][toCol]=src[row][fromCol];
}
}
}
int main()
{
srand(static_cast<unsigned int>(time(0)));
// Матрицы
int srcMatrix[ROWS][COLS],destMatrix[ROWS][COLS/2];
// Заполним случайными числами
genMatrix(srcMatrix);
// Напечатаем
printMatrix("Исходная матрица:",srcMatrix);
// Выберем столбцы согласно условия
selectEvenColumns(srcMatrix,destMatrix);
// Напечатаем
printMatrix("Результирующая матрица:",destMatrix);
return 0;
}
----------------------------------------------
Исходная матрица:
7 20 1 2
13 22 11 12
1 12 24 21
6 21 3 14
24 8 3 9
Результирующая матрица:
20 2
22 12
12 21
21 14
8 9
----------------------------------------------
Program exited successfully with errcode (0)
Press the Enter key to close this terminal ...
EXECUTING:
/home/neo/projects/174403-2/Debug/src/174403
----------------------------------------------
Исходная матрица:
20 22 2 11 22 2 12
17 17 19 8 15 8 19
0 6 8 11 22 7 0
24 6 3 18 18 2 2
13 9 8 8 8 10 21
Результирующая матрица:
22 11 2
17 8 8
6 11 7
6 18 2
9 8 10
----------------------------------------------
Program exited successfully with errcode (0)
Press the Enter key to close this terminal ...
EXECUTING:
/home/neo/projects/174403-2/Debug/src/174403
----------------------------------------------
Исходная матрица:
16 22 0 8 13 6 3
8 21 8 18 3 23 23
12 7 16 22 23 20 0
22 20 0 6 15 2 11
1 7 7 17 4 7 2
Результирующая матрица:
22 8 6
21 18 23
7 22 20
20 6 2
7 17 7
----------------------------------------------
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.