Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Заблокирован
1

Обмен половинами в матрице

21.02.2010, 16:19. Просмотров 487. Ответов 3
Метки нет (Все метки)


Дана матрица HxW H = 4 W = 4. Составить функцию, которая может, менять столбцы первой половины матрицы на столбцы второй половины матрицы. Сделайте пожалуйста. лучше на C++.
Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2010, 16:19
Ответы с готовыми решениями:

Обмен первыми половинами двух стеков
Помогите, пожалуйста, нужно написать программу обмены первыми половинами двух стеков.

Обмен строчек в матрице
вообщем немогу найти ошибку(ничего не меняет #include <iostream> #include <conio.h> #include...

Заменить все четные элементы матрицы их половинами
Разработать программу, которая формирует матрицу размером m x n (значения m и n вводятся с...

Обмен элементов в матрице.
Задана матрица м на н 3. найти в каждой строчке найбольший и найменьший елемент и поставить их на...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
3
1258 / 796 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
21.02.2010, 16:32 2
Раз уж на C++ попробуй абстрактное решение.
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
#include <iostream.h>
#include <stdlib.h>
 
 
//Обмен одной половина матрицы с её другой половиной
template <class T>
long swap_halfs(T *matrix , const int H, const int W);
template <class T>
long print_m(T *matrix ,const  int H, const int W);
 
int main(){
const int H = 4;
const int W = 4;
    int matrix[H][W] = {
        {1,1,2,2},
        {1,1,2,2},
        {1,1,2,2},
        {1,1,2,2}
};
print_m(matrix,H,W);
swap_halfs((int*)matrix,H,W);
print_m(matrix,H,W);
 
return 0;
}
 
template <class T>
long print_m(T *matrix , const int H, const int W){
    for(int i=0;i<H;i++){
        for(int j=0;j<W;j++){
          cout<<' '<<matrix[i][j];
        }
cout<<'\n';
}
cout<<'\n';
return 0;
}
 
 
template <class T>
long swap_halfs(T *matrix , const  int H, const int W){
if(W%2!=0)return -1;    //матрица должна быть чётной ширины.
T tmp; 
//Цикл обмен половинами
for(int i=W/2-1,j=W/2; i>=0||j<W; i--,j++){
    for(int str = 0;str<H;str++){
    tmp = matrix[str*W+i];
    matrix[str*W+i]=matrix[str*W+j];
    matrix[str*W+j] = tmp;
    }
}
return 0;
}
1
Заблокирован
21.02.2010, 16:38  [ТС] 3
А без шаблонов можно как то?

Добавлено через 2 минуты
Я не очень их понимаю.
0
1258 / 796 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
21.02.2010, 16:44 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
#include <iostream.h>
#include <stdlib.h>
 
 
//Обмен одной половина матрицы с её другой половиной
 
long swap_halfs(int *matrix , const int H, const int W);
long print_m(int *matrix ,const  int H, const int W);
 
int main(){
const int H = 4;
const int W = 4;
    int matrix[H][W] = {
        {1,1,2,2},
        {1,1,2,2},
        {1,1,2,2},
        {1,1,2,2}
};
print_m((int*)matrix,H,W);
swap_halfs((int*)matrix,H,W);
print_m((int*)matrix,H,W);
 
return 0;
}
 
 
long print_m(int *matrix , const int H, const int W){
    for(int i=0;i<H;i++){
        for(int j=0;j<W;j++){
          cout<<' '<<matrix[i*W+j];
        }
cout<<'\n';
}
cout<<'\n';
return 0;
}
 
 
 
long swap_halfs(int *matrix , const  int H, const int W){
if(W%2!=0)return -1;    //матрица должна быть чётной ширины.
int tmp; 
//Цикл обмен половинами
for(int i=W/2-1,j=W/2; i>=0||j<W; i--,j++){
    for(int str = 0;str<H;str++){
    tmp = matrix[str*W+i];
    matrix[str*W+i]=matrix[str*W+j];
    matrix[str*W+j] = tmp;
    }
}
return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2010, 16:44

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Обмен столбцов в матрице
В матрице A поменять столбцы, содержащие соответственно максимальный и минимальный элементы...

Осуществить обмен строк в матрице
Есть матрица. Нужна помощь с созданием ПОДПРОГРАММУ-ФУНКЦИЮ в, которой осуществить обмен элементов...

Обмен строк в квадратной матрице
Как реализовать обмена строк с минимальной и максимальной суммой элементов между собой?Пока что...

Обмен местами главной и побочной диагоналей в матрице
помогите пожалуйста написать легонькую программку на си: обмен местами главной и побочной...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.