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

Циклический сдвиг матрицы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Данная матрицы сложения со слов порядка n * n. http://www.cyberforum.ru/cpp-beginners/thread577133.html
Помогите решить срочно..Пожалуйста. Данная матрицы сложения со слов порядка n * n. Слова разделяются пробелами. Определить и вывести на экраны слова побочной диагонали.
C++ Разделить введенную строку пополам и соединять в обратном порядке помогите пожалуйста написать программу! программа должна разделять введенную строку пополам и соединять в обратном порядке!если слово нечетное то оставить букву в середине без изменений! http://www.cyberforum.ru/cpp-beginners/thread577125.html
C++ Массив Задача
День добрый!! Помогите с задачей. Дан массив размера N. Найти номера двух ближайших по значению элементов из этого массива (то есть элементов с наименьшим модулем разности) и вывести эти номера в порядке возрастания. Заранее спасибо!!
C++ Нужна помощь по блок схемах!
К этой програме мне нужна блок схема, помогите пожалуйста. class parampampam { private: #define DEFAULT_SIZE ( 5 ) int **matrix; int *array; size_t size; size_t index_array;
C++ Одномерные,двумерные массивы на языке С\С+ http://www.cyberforum.ru/cpp-beginners/thread577092.html
огромная просьба,извините заранее за назойливость только начала изучать с+,очень нужен для работы.тут встала проблема две задачи на массивы.не могли бы мне помочь с решением их и составлением блок-схем для них а дальше ухвачу. 1 задача.В произвольном одномерном массиве, содержащий числовые значения, определить местоположение элементов массива равными значению максимального элемента. 2 задача.В...
C++ Функция Polyline Подскажите использрвание этой функции! подробнее

Показать сообщение отдельно
Вечный_Студент
 Аватар для Вечный_Студент
2 / 2 / 0
Регистрация: 16.05.2012
Сообщений: 38
16.05.2012, 22:55     Циклический сдвиг матрицы
Всем доброго дня. Программа располагает двумерный массив в динамичной памяти и сдвигает его на Т элементов влево.
вопрос вот в чем: Как изменить void func(int **arr, int size, int stift) , чтобы сдвигало массив вправо, а не влево?

Код:
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
//фукнция сдвига
//на входе подается указатель на начало массива
//размер массива и на сколько сдвигать
 
void func(int **arr, int size, int stift)
{
    int **tmp=(int**)malloc(size*sizeof(int*));
    int i,j,iPos,jPos;
 
    for(i=0;i<size;++i)
        tmp[i]=(int*)malloc(size*sizeof(int));
 
    for(i=0;i<size;++i)
        for(j=0;j<size;++j)
        {
            iPos=i+(stift+j)/size;
            if(iPos>=size) iPos%=size;
                jPos=(stift+j)%size;
            tmp[i][j]=arr[iPos][jPos];
        }
 
    for(i=0;i<size;++i)
    {
        for(j=0;j<size;++j)
            arr[i][j]=tmp[i][j];
        free(tmp[i]);
    }
 
    free(tmp); 
}
 
int main()
{
    int **arr,i,j,stift,size;
    printf("Enter size of matrix ");
    scanf("%d",&size);
    printf("\n");
    srand(time(NULL));
    arr=(int**)malloc(size*sizeof(int*));
 
//случайное заполнение
//и вывод двумерного массива
    for(i=0;i<size;++i)
    {
        arr[i]=(int*)malloc(size*sizeof(int));
        for(j=0;j<size;++j)
        {
            arr[i][j]=-50+rand()%100;
            printf("%d\t",arr[i][j]);
        }
        printf("\n");
    }
 
    printf("Enter nuber of stift ");
    scanf("%d",&stift);
    func(arr,size,stift);
    printf("\n");
 
//вывод нового двумерного массива
//размерами i на j
    for(i=0;i<size;++i)
    {
        for(j=0;j<size;++j)
            printf("%d\t",arr[i][j]);
        free(arr[i]);
        printf("\n");
    }
    free(arr);
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru