Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Aaaaa111
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 25
22.05.2012, 18:43     Переставить местами ni и nj строки массива A #1
Задание.Дан числовой массив А, состоящий из 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://***************/question/75676407/
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
22.05.2012, 20:16     Переставить местами ni и nj строки массива A #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;
}
Aaaaa111
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 25
22.05.2012, 21:03  [ТС]     Переставить местами ni и nj строки массива A #3
Спасибо.. а
C++
1
std::cout<< A[i][j]<< " ";
здесь а кавычках что то надо написать ? и еще если не трудно можете обьяснить как работает функция..
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
22.05.2012, 21:31     Переставить местами ni и nj строки массива A #4
Цитата Сообщение от Aaaaa111 Посмотреть сообщение
Спасибо.. а
C++
1
std::cout<< A[i][j]<< " ";
здесь а кавычках что то надо написать ? и еще если не трудно можете обьяснить как работает функция..
Ковычки - это на самом деле пробел. Помещает в поток стандартного вывода элемент массива с индексами i, j, а затем пробел.
Yandex
Объявления
22.05.2012, 21:31     Переставить местами ni и nj строки массива A
Ответ Создать тему
Опции темы

Текущее время: 04:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru