Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Aaaaa111
0 / 0 / 1
Регистрация: 14.05.2012
Сообщений: 25
#1

Переставить местами ni и nj строки массива A - C++

22.05.2012, 18:43. Просмотров 407. Ответов 3
Метки нет (Все метки)

Задание.Дан числовой массив А, состоящий из n строк и m столбцов. Переставить местами ni и nj строки массива A.

допустим
у нас матрица

Код:

C++
1
a: array[1..n, 1..m] of integer;
заводим доп массив для обмена! Его длина равна количеству столбцов матрицы

Код:
C++
1
temp: array[1..m] of integer;
Тогда обмен будет таким

Код:

C++
1
2
3
temp := a[ni];
a[ni] := a[nj];
a[nj] := temp;
Вот БЛОК-СХЕМА РЕШЕНИЯ
http://www.cyberforum.ru/cpp-beginners/thread827411.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2012, 18:43
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Переставить местами ni и nj строки массива A (C++):

Переставить местами строки матрицы.
БИЛЕТ №21 3. Дана целочисленная квадратная матрица. Переставьте местами...

Переставить местами строки в масиве
Пусть, например, у нас есть структура Struct ABC{ char b; }; и массив...

Квадратная матрица, переставить строки местами
Задана вещественная квадратная матрица(вводится с клавиатуры). Переставить...

Дана квадратная таблица a[1:n,1:n]. Переставить местами строки 1 и 2, 3 и 4 и т.д
4 Дана квадратная таблица a. Переставить местами строки 1 и 2, 3 и 4 и т.д....

Строки (В строке переставить местами рядом стоящие слова)
Задача: В строке переставить местами рядом стоящие слова. Помогите сделать...

3
MrGluck
Модератор
Эксперт CЭксперт С++
8021 / 4864 / 1425
Регистрация: 29.11.2010
Сообщений: 13,240
22.05.2012, 20:16 #2
Ну, блок схему все равно не видно, а вобще куда проще и быстрее поменять указатели.
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
#include <iostream>
#include <algorithm>
 
int main()
{
    const int m = 4, n = 3;
    int A[m][n], ni, nj;
    for (int i=0; i < m; i++)
    {
        for (int j=0; j < n; j++)
        {  
            A[i][j] = i*m + j + 1;
            std::cout<< A[i][j]<< " ";
        }
        std::cout<< std::endl;
    }
    std::cin>> ni>> nj;
    if (ni < 0 || ni >= m || nj < 0 || nj >= m) return 1;
    std::swap (A[ni], A[nj]);
    std::cout<< "After swap:\n"; 
    for (int i=0; i < m; i++)
    {
        for (int j=0; j < n; j++)
            std::cout<< A[i][j]<< " ";
        std::cout<< std::endl;
    }
    return 0;
}
0
Aaaaa111
0 / 0 / 1
Регистрация: 14.05.2012
Сообщений: 25
22.05.2012, 21:03  [ТС] #3
Спасибо.. а
C++
1
std::cout<< A[i][j]<< " ";
здесь а кавычках что то надо написать ? и еще если не трудно можете обьяснить как работает функция..
0
MrGluck
Модератор
Эксперт CЭксперт С++
8021 / 4864 / 1425
Регистрация: 29.11.2010
Сообщений: 13,240
22.05.2012, 21:31 #4
Цитата Сообщение от Aaaaa111 Посмотреть сообщение
Спасибо.. а
C++
1
std::cout<< A[i][j]<< " ";
здесь а кавычках что то надо написать ? и еще если не трудно можете обьяснить как работает функция..
Ковычки - это на самом деле пробел. Помещает в поток стандартного вывода элемент массива с индексами i, j, а затем пробел.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2012, 21:31
Привет! Вот еще темы с решениями:

Переставить местами строки с четными и нечетными номерами в матрице
В общем суть такова, надо ввести 2 матрицы 4*4,и найти кол-во элементов больших...

Переставить местами строки с наименьшей и наибольшей суммами элементов
Задача. Переставить местами строки с наименьшей и наибольшей суммами элементов....

Переставить местами первый и последний строки прямоугольной таблицы (матрицы)
Переставить местами первый и последний строки прямоугольной таблицы (матрицы)

Переставить местами минимальный и максимальный элементы массива
Добрый вечер, помогите пожалуйста решить В одномерном массиве, состоящем из 10...


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

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

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