nixp.ru v3.0

23 мая 2017,
вторник,
15:46:50 MSK

DevOps с компанией «Флант»
Kat написал 20 ноября 2013 года в 11:56 (871 просмотр) Ведет себя неопределенно; открыл 5 тем в форуме, оставил 7 комментариев на сайте.

Здравствуйте помогите пожалуйста мне нужно в двумерном массиве сделать циклический сдвиг по нечетным столбцам, просто по столбцам я сделала а вот по нечетным не могу помогите пожалуйста.

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

 

int **formMatr (int &n, int &m)

{

 

printf («\n enter — n  » ) ;

scanf («%d»,&n);

printf («\n enter — m  » ) ;

scanf («%d»,&m);

 

int **matr = new int *[n];

for (int i=0; i<n; i++)

matr=new int [m];

return matr;

}

 

int **formMatr2 (int **matr,int &n, int &m)

{

 

for (int i=0; i<n; i++)

for (int j=0; j<m; j++)

matr[j]=rand()%20;

 

 

return matr;

}

 

void print (int **matr, int n, int m)

{

 

for (int i=0; i<n; i++)

{

for (int j=0; j<m; j++)

printf («%7d »,matr[j]) ;

printf («\n» ) ;

}

}

void perevorot (int **matr, int &m, int &n)

{

 

int temp,el,o,p,k;

int i, j,j2;

printf («\nVvedte sdvig: »);

scanf («%d»,&k);

 

 

for(i = 0; i < n; i++)

{

for(j = 0; j < m; j++)

{

j2 = (j + k + m)%m;

printf («%7d »,matr[j2]) ;

}

printf («\n» ) ;

}

}

 

int main ()

{

int **matr;

int n,m;

matr=formMatr(n,m);

matr=formMatr2(matr,n,m);

print (matr,n,m);

perevorot(matr,m,n);

 

for (int i=0; i<n; ++i)

delete [] matr ;

delete [] matr ;

system(«PAUSE»);

return 0;

}

fhunter

Ну так добавьте в функцию perevorot проверку на нечётность столбца.

for(j = 0; j < m; j++)

{

j2 = (j + k + m)%m;

printf («%7d »,matr[j2]) ;

}

Вот сюда проверку i на нечётность — если нечётный — выводить как у вас написано, если чётный — выводить matr[j]