Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 15.08.2018
Сообщений: 7
1

Все нечетные строки матрицы сдвинуть циклически на К элементов влево

15.08.2018, 21:10. Показов 1572. Ответов 6
Метки нет (Все метки)

Привет! Нужна помощь.

Используя функции сформировать с помощью ДСЧ двумерный массив и вывести его на печать.
Все нечетные строки матрицы сдвинуть циклически на К элементов влево.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2018, 21:10
Ответы с готовыми решениями:

Все нечетные строки матрицы сдвинуть циклически на К элементов влево
Помогите пожалуйста нужно нужно создать двумерный динамический массив и все нечетные строки матрицы...

Все нечетные строки матрицы сдвинуть циклически на К элементов влево
Уважаемые товарищи программисты прошу у вас помощи так как сам не очень понимаю С++ 1. Используя...

Все нечетные строки матрицы сдвинуть циклически на К элементов влево
Помогите пожалуйста!!!!!!!!! Только должно быть с помощью функции. Это одномерный массив:...

Двумерный динамический массив. Все нечетные строки матрицы сдвинуть циклически на К элементов влево
Помогите пожалуйста нужно нужно создать двумерный динамический массив и все нечетные строки матрицы...

6
Диссидент
Эксперт C
26354 / 16360 / 3558
Регистрация: 24.12.2010
Сообщений: 36,228
15.08.2018, 23:11 2
По поводу циклического сдвига могу дать наводку
Одномерный массив. Циклический сдвиг вправо
1
7245 / 4901 / 2821
Регистрация: 18.12.2017
Сообщений: 15,391
17.08.2018, 14:44 3
Лучший ответ Сообщение было отмечено BelkinaAB как решение

Решение

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
#include <iostream>
#include <ctime>
using namespace std;
 
void Random (double **a, int n, int m)
{
    for (int i = 0; i < n; i++)    
    for (int j = 0; j < m; j++) 
    a[i][j]=rand()%9 + 1;     
}
 
void LeftShift (double **a, int n, int m, int k)
{
    double temp;
    for (int i = 0; i < n; i+=2)
    {
    for (int p = 1; p <=k; p++)
    {
    temp=a[i][0];
    for (int j = 0; j < m-1; j++)     
    a[i][j]=a[i][j+1];  
    a[i][m-1]=temp; 
    } 
    }
}
 
void Print (double **a, int n, int m)
{
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < m; j++)
    cout <<a[i][j]<<" ";
    cout << endl;
    }
    cout << endl;
}
 
int main()
{
    srand((int)time(0));
    int n, m, k;
    cout <<"n="; cin >>n;
    cout <<"m="; cin >>m;
    
      double **a = new double*[n]; 
    for (int i = 0; i < n; i++)
       a[i]=new double[m]; 
    
    cout <<"Shift k="; cin >>k;  
    
    Random (a, n, m);
    Print (a, n, m);
    LeftShift (a, n, m, k);    
    Print (a, n, m);
    
system("pause");
return 0;
}
1
36 / 37 / 10
Регистрация: 02.04.2016
Сообщений: 300
17.08.2018, 15:36 4
Воть
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
#include <iostream>
#include <algorithm>
#include <chrono>
#include <random>
#include <vector>
#include <iomanip>
 
template <class IntType>
IntType random(IntType a, IntType b) {
    static std::minstd_rand generator(
        static_cast<unsigned>(
            std::chrono::system_clock::now().time_since_epoch().count()
        )
    );
    std::uniform_int_distribution<int> distribution(a, b);
    return distribution(generator);
}
 
using Matrix = std::vector<std::vector<int>>;
std::ostream& operator<< (std::ostream& out, Matrix const& matrix) {
    int offset = out.width();
    for(auto const& row: matrix) {
        out << std::setw(offset);
        
        for(auto const& element: row) {
            out << ' ' << std::setw(4) << std::left << element;
        }
        
        out << '\n';
    }
    
    return out;
}
int main() {
    Matrix matrix(random(5u, 10u));
    std::generate(matrix.begin(), matrix.end(), [] {
        std::vector<int> row(random(5u, 10u));
        std::generate(row.begin(), row.end(), [] { return random(0, 100); });
        return row;
    });
    
    std::cout << std::setw(5) << matrix << '\n';
    
    int k = 4;
    for(size_t row = 1; row < matrix.size(); row += 2) {
        std::rotate(matrix[row].begin(), matrix[row].begin() + k, matrix[row].end());
    }
    
    std::cout << "After rotate odd rows on " << k << " elements to left: \n"
              << std::setw(5) << matrix << std::endl;
    
    
    return 0;
}
1
7245 / 4901 / 2821
Регистрация: 18.12.2017
Сообщений: 15,391
17.08.2018, 21:46 5
BelkinaAB, заметил что не освободил память. перед system("pause"); добавьте:
C++
1
2
3
for (int i = 0; i < n; i++)
delete [] a[i];
delete [] a;
1
1 / 1 / 0
Регистрация: 19.12.2016
Сообщений: 2
18.08.2018, 01:45 6
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
#include <iostream> 
#include <cstdlib> 
#include <ctime> 
 
using namespace std; 
 
void mass(int a[][100], int n, int m) { 
    cout <<"ishedni massiv:"<<"\n"; 
    for (int i = 0; i < n; i++) { 
        for (int j = 0; j < m; j++) { 
            a[ i][j] = rand() % 100; 
            cout << a[ i][j] << "\t"; 
        } 
        cout << "\n"; 
    } 
} 
 
int main() { 
    srand(time(NULL)); 
    int a[100][100]; 
    int n,m; 
    int k; 
    cout << "vvedite chislo strok: "; 
    cin >> n; 
    cout << "vvedite chislo stolbcov: "; 
    cin >> m; 
    mass(a, n, m); 
    cout << "k? "; 
    cin >> k; 
 
    for (int r = 0; r < n; r += 2) 
        rotate(a[r], a[r] + m - k % m, a[r] + m); 
 
    for (int i = 0; i < n; i++) { 
        for (int j = 0; j < m; j++) { 
            cout << a[ i][j] << "\t"; 
        } 
        cout << "\n"; 
    } 
 
    cin.get(); cin.get(); 
    return 0; 
}
1
Диссидент
Эксперт C
26354 / 16360 / 3558
Регистрация: 24.12.2010
Сообщений: 36,228
18.08.2018, 10:25 7
k раз сдвигать на единичку? Ну-ну...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.08.2018, 10:25

Сдвинуть элементы массива циклически на M влево, перевернуть нечетные строки и посчитать простые числа
Доброго времени суток. Помогите составить программу. Заранее благодарен. Тут несколько условий, не...

Циклически сдвинуть все элементы матрицы влево в строках, которые начинаются с положительного элемента
(((Там какая та задача из темы Массивов))) Для решения этой задачи: В матрице Z(4,5) сдвинуть все...

Удалить все нечетные элементы массива. Добавить элемент с номером К. Сдвинуть циклически на M элементов вправо
Ребят, помогите срочно пожалуйста. Нужно: 1)Удалить все нечетные элементы массива. 2) Добавить...

Сдвинуть все элементы последовательности циклически на k позиций влево
1. Дано целое число. Если число отрицательное, то необходимо вывести все четные числа, начиная со...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru