powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Массив в C++
9 сообщений из 9, страница 1 из 1
Массив в C++
    #32329268
Ketty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста с примерчиком: Матрицу 3 на 5 повернуть вокруг среднего столбца!!!!
...
Рейтинг: 0 / 0
Массив в C++
    #32329325
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
int a[3][5], val;

for(int i = 0; i < 3; i++)
{
val = a [0]; a[0]=a[4]; a[4] = val;
val = a[1]; a[1]=a[3]; a[3] = val;
}
...
Рейтинг: 0 / 0
Массив в C++
    #32329351
_Konst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Lepsik |>
val должен быть указателем на массив из трех рядов
и тогда наверное лучше воспользоваться memcpy

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
const cols =  5 ;
const rows = 3 ;
int m[rows][cols] = {{...}...};
int half = cols/ 2 ; //== 2 
for(int row= 0 ; row<cols; row++)
{
for(col= 0 ; col<half; col++)
{
   int buf = m[row][cols - col -  1 ];
   m[row][cols - col -  1 ] = m[row][col];
   m[row][col] = buf;   
}
}
...
Рейтинг: 0 / 0
Массив в C++
    #32329354
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда еще короче. что-то ты у себя наворотил без меры.

int a[5][3], val;

for(int i = 0; i < 5; i++)
{
val = a[0]; a[0]=a[2]; a[2] = val;
}
...
Рейтинг: 0 / 0
Массив в C++
    #32329356
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин парсер кушает

int a[ 5 ][ 3 ];

for(int i = 0; i < 5; i++)
{
int val = a[ i ][ 0 ]; a[ i ][ 0 ]=a[ i ][ 2 ]; a[ i ][ 2 ] = val;
}
...
Рейтинг: 0 / 0
Массив в C++
    #32329364
_Konst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там должна была быть рожица


Да не... вроде все нормально наворотил
...
Рейтинг: 0 / 0
Массив в C++
    #32329392
_Konst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
только у меня в первом for
конечно row < rows должно быть

автор писал:блин парсер кушает

int a[ 5 ][ 3 ];

for(int i = 0; i < 5; i++)
{
int val = a[ i ][ 0 ]; a[ i ][ 0 ]=a[ i ][ 2 ]; a[ i ][ 2 ] = val;
}


Вообще-то матрица 3x5 а не 5x3. первый индекс для матриц обычно соотвествует номеру строки
...
Рейтинг: 0 / 0
Массив в C++
    #32329404
Ketty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, но, к сожалению я в этом деле новичок и боьше половины из вышенаписанного мне непонятно, я делала так:
#include <iostream.h>
int main (void)
{int a[3][5];
int i,j;
for(i=0;i<3;i++)
{for(j=0;j<5;j++) cin>>a [j];};
for(i=0;i<3;i++)
{for(j=0;j<5;j++)
if(i=2) {i=4;};
if(i=1) {i=5;};
cout<<a[j]<<endl;
return(1);}}
Но это неправильно, помогите додумать этот вариант....
...
Рейтинг: 0 / 0
Массив в C++
    #32329781
_Konst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемая Ketty!
Поверьте совсем не в ваших интересах получить сразу полностью готовую программу.
Приведенная мною часть касается, конечно, только алгоритма перестановки столбцов. Заполнение матрицы под вашу отвественность и если вы замените
Код: plaintext
{for(j= 0 ;j< 5 ;j++) cin>>a[j];};

на
Код: plaintext
{for(j= 0 ;j< 5 ;j++) cin>>a[i][j];};

то все получиться. Хотя возможно это у вас из-за того, что
Код: plaintext
[i]
parser понял как внутренний тег. Я и Lepsik (но на него не смотрите
) постарались изобразить, что достичь желаемого результата можно меняя симметричным образом номера столбцов от начала и конца. У меня это собственно
col и cols - col -1, где col изменяется от нуля до середины.
Еще раз хочу обратить ваше внимание на необходимость использования в данном случае двойного индекса
Код: plaintext
a[i][j]
, а то вы и заполняете и выводите указатели. То, что вы и Lepsik пишите
Код: plaintext
a[j]
- это указатель на массив из cols элементов, а вовсе не число. Будьте бдительны, не давайте себя провести.
То, что написано у вас, правильно только на половину - вы меняете
Код: plaintext
1.
if(i= 2 ) {i= 4 ;}; 
if(i= 1 ) {i= 5 ;}; 
, но не меняете
Код: plaintext
1.
if(i= 4 ) {i= 2 ;}; 
if(i= 5 ) {i= 1 ;}; 

Только ни в коем случае не дописывайте это в свой вариант - ничего не получиться. Вот увидите
.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Массив в C++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]