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

Сдвинуть элементы двумерного массива на k позиций влево - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Режим отладки http://www.cyberforum.ru/cpp-beginners/thread719543.html
Добрый вечер, суть проблемы в том, что при запуске программы в режиме отладки программа работает правильно, но когда я компилирую в обычном режиме программа работает неправильно. Компилирую в dev-c++. В чем проблема?
C++ Перевод даты из символьного формата во внутреннее представление и обратно Разработать функцию, которая переводит дату из символьного формата «дд.мм.гггг» во внутреннее представление и обратно.Только чтобы не использовать цикл http://www.cyberforum.ru/cpp-beginners/thread719542.html
C++ в данной действительной квадратной матрице порядка n найти сумму элементов строки ,в которой расположен элемент с наименьшим значением. Предполагается
в данной действительной квадратной матрице порядка n найти сумму элементов строки ,в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный.можно написать попроще, а то не всё понимаю пока)
Квадратная Матрица (найти след, преобразовать по правилу) C++
Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов. Найти след матрицы, суммируя элементы одномерного массива. Преобразовать исходную матрицу по правилу : четные строки разделить на полученное значение, нечетные оставить без изменения.
C++ Текстовый анализитор http://www.cyberforum.ru/cpp-beginners/thread719501.html
Написать программу, определяющую корректность расстановки круглых скобок в арифметическом выражении
C++ Замена элементов в двумерном массиве В общем, всем здравствуйте. Проблема такая - написал код, который должен заменять элементами из верхнего синего треугольника элементы нижнего зелёного. (Извините - я не художник :) ) Но он не работает. Прошу помочь найти ошибку. Вот код: #include<stdio.h> #include<conio.h> #include<math.h> main() { подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,863
Записей в блоге: 2
Завершенные тесты: 1
04.12.2012, 22:40     Сдвинуть элементы двумерного массива на k позиций влево
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
#include <iostream>
#include <random>
#include <ctime>
#include <iomanip>
 
 
void foo_right(int ** pArr,int _w, int _h, int count){
    int size=_w*_h;
    count=count%size;
    int * pTemp=new int[count];
    memmove(pTemp,((*pArr)+size-count),count*sizeof(**pArr));
    memmove((*pArr)+count,*pArr,(size-count)*sizeof(**pArr));
    memmove(*pArr,pTemp,count*sizeof(**pArr));
    delete [] pTemp;
}
void foo_left(int ** pArr,int _w, int _h, int count){
    int size=_w*_h;
    count=count%size;
    int * pTemp=new int[count];
     memmove(pTemp,*pArr,count*sizeof(**pArr));
     memmove(*pArr,(*pArr)+count,(size-count)*sizeof(**pArr));
     memmove((*pArr)+size-count,pTemp,count*sizeof(**pArr));
    delete [] pTemp;
}
 
int main(){
    srand(time(0));
    const int width=5;
    const int height=7;
    int ** pArr=new int*[height];
    int * ptemparr=new int[width*height];
    pArr[0]=ptemparr;
    for(int i=1;i<height;++i)
        pArr[i]=pArr[i-1]+width;
 
 
    for(int i=0;i<height;++i){
        for(int j=0;j<width;++j){
            pArr[i][j]=rand()%100;
            std::cout<<std::setw(3)<<pArr[i][j];
        }
        std::cout<<std::endl;
    }
 
    foo_left(pArr,width,height,2);
 
    std::cout<<std::endl;
    for(int i=0;i<height;++i){
        for(int j=0;j<width;++j){
            std::cout<<std::setw(3)<<pArr[i][j];
        }
        std::cout<<std::endl;
    }
    delete [] *pArr;
    delete [] pArr;
 
    std::cin.get();
    return 0;
}
Добавлено через 1 минуту
C++
1
2
void foo_right(int ** pArr,int _w, int _h, int count)//Сдвиг вправо - pArr - указатель на массив(массив выделен сплошным блоком памяти), _w,_h - "ширина и высота" массива, count - на сколько сдвинуть
void foo_left(int ** pArr,int _w, int _h, int count)//Сдвиг влево. Параметры те же
 
Текущее время: 14:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru