Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
SergoFAN1997
0 / 0 / 1
Регистрация: 13.11.2015
Сообщений: 6
1

Для заданной матрицы А размерности M⨯N написать программу перестановки двух произвольных столбцов

14.11.2015, 08:02. Просмотров 911. Ответов 3
Метки нет (Все метки)

Сгенерировал матрицу
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
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
int strok(int x)
{
scanf("%d", &x);
return x;
}
 
int stolb(int y)
{
printf("%d\t", y);
return 0;
}
 
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int m, n, i, j;    //m-число строк, n-число столбцов
do {
    printf("Введите размер массива MXN\n");
    printf("Количество строк: ");
    scanf("%d",&m);
    printf("Количество столбцов: ");
    scanf("%d",&n);
if (m<1 || n<1) printf("Размеры введены некорректно\n");
}while (m<1 || n<1);
int matrix[m][n];
for (i=0;i<m;i++){
for (j=0;j<n;j++){
printf("matrix[%d][%d]=",i+1,j+1);
matrix[i][j]=strok(matrix[i][j]);
}
}
for (i=0;i<m;i++){
for (j=0;j<n;j++){
stolb(matrix[i][j]);
}
printf("\n");
}
 
return 0;
}
как осуществить перестановку двух столбцов в этой матрице??

Добавлено через 15 часов 37 минут
Извиняюсь, программа на языке СИ нужна
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2015, 08:02
Ответы с готовыми решениями:

Написать программу вычитания двух матриц размерности M⨯N
Погуглив я сделал программку вычитания 2х матриц размером 2х2, но не могу понять как сделать чтоб...

Написать программу перестановки двух произвольных строк в матрице
Добрый день, прошу о помощи, т.к. сама разобраться не могу. Заранее спасибо:) Для заданной...

Написать программу для объединения двух произвольных векторов в один
Задание: написать программу для объединения двух произвольных векторов в один.

Написать программу для нахождения НОД двух произвольных целых чисел
1. Написать программу для нахождения НОД двух произвольных целых чисел. 2. Написать программу для...

Исправить программу попарной перестановки столбцов матрицы
Двумерный массив: с перестановкой попарно столбцов с циклом WHILE мы разобрались – и с...

3
Jewbacabra
Эксперт PHP
3856 / 3176 / 1387
Регистрация: 24.04.2014
Сообщений: 9,655
14.11.2015, 10:42 2
Цитата Сообщение от SergoFAN1997 Посмотреть сообщение
как осуществить перестановку двух столбцов в этой матрице??
Нужно циклом по каждой строке матрице поменять местами элементы, соответствующий данным столбцам
1
SergoFAN1997
0 / 0 / 1
Регистрация: 13.11.2015
Сообщений: 6
18.11.2015, 15:17  [ТС] 3
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Нужно циклом по каждой строке матрице поменять местами элементы, соответствующий данным столбцам
а можете код написать пожалуйста?
0
VasiliyRM
68 / 68 / 55
Регистрация: 17.11.2015
Сообщений: 148
19.11.2015, 14:16 4
Лучший ответ Сообщение было отмечено SergoFAN1997 как решение

Решение

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
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
#define N 20 //размер массива
 
int strok(int x)
{
    scanf("%d", &x);
    return x;
}
 
int stolb(int y)
{
    printf("%d\t", y);
    return 0;
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int m =0 , n, i, j, j1, j2, temp;    //m-число строк, n-число столбцов
    int matrix[N][N];
    do {
        printf("Введите размер массива MxN [max(M,N) = %d  min(M,N) = %d]\n",N,1);
        printf("Количество строк: ");
        scanf("%d", &m);
        printf("Количество столбцов: ");
        scanf("%d", &n);
    } while ((m<1 || n<1 || m>N || n>N) && printf("Размеры введены некорректно!\n"));
 
    for (i = 0;i<m;i++) {
        for (j = 0;j<n;j++) {
            printf("matrix[%d][%d]=", i + 1, j + 1);
            matrix[i][j] = strok(matrix[i][j]);
        }
    }
    printf("\n");
 
    for (i = 0;i < m;i++) {
        for (j = 0;j < n;j++)
            printf("%3d ", matrix[i][j]);
        printf("\n");
    }
 
    do {
        printf("\nВведите номера столбцов через пробел, которые нужно переставить: ");
        scanf("%d %d", &j1, &j2);
    } while ((j1<1 || j2<1 || j1>m || j2>n) && printf("Номера столбцов введены некорректно!\n"));
 
    printf("\n");
 
    for (i = 0;i < m;i++) 
    {
        temp = matrix[i][j1-1];
        matrix[i][j1-1] = matrix[i][j2-1];
        matrix[i][j2-1] = temp;
    }
 
    for (i = 0;i < m;i++) {
        for (j = 0;j < n;j++)
            printf("%3d ", matrix[i][j]);
        printf("\n");
    }
 
    return 0;
}
0
19.11.2015, 14:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2015, 14:16

Написать программу для преобразования заданной квадратной матрицы...
Написать программу для преобразования заданной квадратной матрицы следующим образом: все элементы...

Написать предикат, который для двух произвольных студентов определяет...
Задачка: На контрольной работе некоторые из студентов списали решение каждый у какого-либо одного...

Перестановка задаваемых двух столбцов и двух строк целочисленной матрицы (поправить программу)
Мне нужно составить подпрограмму перестановки задаваемых двух столбцов и двух строк целочисленной...


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

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

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