Здравствуйте помогите пожалуйста мне надо все нечетные строки матрицы сдвинуть циклически на К элементов влево. Знаю тут ужас но не получается помогите пожалуйста.
#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 per(int *i, int &m)
{
int left = i[0];
for(int j = 0; j < m; ++j)
i[j] = i[j + 1];
i[m — 1] = left;
}
void perevorot (int **matr, int &m, int &n)
{
int i;
int K,k;
printf («\nVvedte sdvig: »);
scanf («%d»,&k);
for(int i = 0; i < n; ++i){
if(!(i % 2) || i == 0)
for(int k = 0; k < K; ++k)
per(matr, n);
//std::cout << «\nrol’ed »;
}}
int main ()
{
int **matr;
//int **a;
int n,m,i;
matr=formMatr(n,m);
matr=formMatr2(matr,n,m);
print (matr,n,m);
per(i,n);
perevorot(matr,m,n);
print (matr,n,m);
for (int i=0; i<n; ++i)
delete [] matr ;
delete [] matr ;
system(«PAUSE»);
return 0;
}
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Чем компилируем? Если gcc, то надо всенепременно в опциях компиляции проставить -Wall. Если это сделать, то gcc напишет, что в функции perevorot переменная K используется неинициализированной. Укажет на строчку:
for(int k = 0; k < K; ++k)
И всё потому, что scanf выше читает значение в k, а не в K.
Спасибо)