Поменять столбцы матрицы местами

#include
#include
#include
using namespace std;
int main()
<
setlocale(LC_ALL, "Russian");
srand(time(0));
const int n = 5, m=6;
int a[n][m];
int i, j;
//A
for (i = 0; i

system("pause");
return 0;
>

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

Столбец матрицы определяется вторым индексом. Поэтому в цикле следует перебирать строки матрицы, т.е. переменная-счетчик будет использоваться в качестве первого индекса двумерного массива.

В каждой строке менять местами элементы с номерами указанных столбцов. От итерации к итерации они не меняются. Обмен можно производить через третью переменную.

Пусть номера столбцов, которые следует поменять местами, задаются путем ввода значений в момент выполнения программы.

Если в языке программирования индексация массивов начинается с нуля, а столбцы указываются, исходя из их фактического положения в матрице (начиная с 1), то следует из переменных, в которых записаны номера столбцов, вычесть единицу перед их использованием в цикле.

from random import random
M = 10
N = 5
a = [ ]
for i in range ( N ) :
b = [ ]
for j in range ( M ) :
b. append ( round ( random ( ) * 2 ) )
a. append ( b )
print ( b )

c1 = int ( input ( "Один столбец: " ) ) — 1
c2 = int ( input ( "Другой столбец: " ) ) — 1

for i in range ( N ) :
a [ i ] [ c1 ] , a [ i ] [ c2 ] = a [ i ] [ c2 ] , a [ i ] [ c1 ]
print ( a [ i ] )

алг поменять столбцы местами
нач
цел M = 6 , N = 4
цел таб a [ 1 : N , 1 : M ]
цел i , j , c1 , c2 , b

нц для i от 1 до N
нц для j от 1 до M
a [ i , j ] := int ( rand ( 0 , 10 ) )
вывод a [ i , j ] : 3
кц
вывод нс
кц

ввод c1
ввод c2

нц для i от 1 до N
b := a [ i , c1 ]
a [ i , c1 ] := a [ i , c2 ]
a [ i , c2 ] := b
кц

Читайте также  Программа распознавания предметов по фото

нц для i от 1 до N
нц для j от 1 до M
вывод a [ i , j ] : 3
кц
вывод нс
кц
кон

M = 8
N = 3
dim a(N,M)
for i = 0 to N-1
for j=0 to M-1
a[i,j] = int(rand*10)
print a[i,j] + " " ;
next j
print
next i

input c1
input c2

for i=0 to N-1
buff = a[i,c1-1]
a[i,c1-1] = a[i,c2-1]
a[i,c2-1] = buff
next i

for i = 0 to N-1
for j=0 to M-1
print a[i,j] + " " ;
next j
print
next i

Дана матрица, в которой надо поменять строки и столбцы местами. Ниже код, который уже набросал, но он не меняет местами строки и столбцы.
Кто может объяснить, как правильно в с++ можно поменять строки и столбцы? Спасибо.

1 ответ 1

В код особо не вчитывался, но должно быть так:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками матрицы c++ или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.12.20.35703

Ссылка на основную публикацию
Adblock
detector