0 / 0 / 0
Регистрация: 10.12.2017
Сообщений: 14
1

Разработать функцию, позволяющую поменять местами две произвольные строки двухмерного массива

14.12.2017, 09:56. Показов 1313. Ответов 3

Помогите Разработать функцию, позволяющую поменять местами две произвольные строки двухмерного массива. Ввести массив. Поменять два раза по две строки. Результат вывести на печать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2017, 09:56
Ответы с готовыми решениями:

Разработать функцию, позволяющую поменять местами две произвольные строки двухмерного массива
Разработать функцию, позволяющую поменять местами две произвольные строки двухмерного массива....

Разработать функцию, позволяющую поменять местами две произвольные строки матрицы
Имеется код: #include <iostream> #include <stdio.h> using namespace std; char **s = new char* ,...

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

Поменять местами две строки матрицы
1 6 7 2 5 8 3 4 9. Язык программирования Си.

3
Модератор
Эксперт С++
12785 / 10240 / 6151
Регистрация: 18.12.2011
Сообщений: 27,422
14.12.2017, 12:03 2
Возьмите за основу
Образцы (шаблоны) программ для типовых задач

Добавляем функцию
C++
1
2
3
4
5
6
7
 // поменять местами строки s1 и s2 матрицы
void swap(int** a,size_t s1,size_t s2)
{
    int* t=a[s1];
   a[s1]=a[s2];
   a[s2]=t;
}
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
int main()
{
    //setlocale( LC_ALL, "Rus" ); // установление русской локали (windows)
 
    size_t n, m;
 
    // вводим размерность матрицы
    std::cout << "Введите количество строк матрицы: ";
    std::cin >> n;
    std::cout << "Введите количество столбцов матрицы: ";
    std::cin >> m;
 
    // выделяем память под матрицу
    int ** A = Create( n, m );
 
    // ввод матрицы
    //Input( A, n, m );
    // заполнение случайными числами (вместо ввода)
    FillRandomNumbers(A,n,m);
 
    // Вывод матрицы
    Print(A,n,m);
 
    // обработка матрицы
    std::cout << "Введите номер 1 строки для перестановки: ";
    int n1;std::cin >> n1;
    if(n1>=n)n1=n-1;
    if(n1<0)n1=0;
     std::cout << "Введите номер 2 строки для перестановки: ";
    int n2;std::cin >> n2;
    if(n2>=n)n2=n-1;
    if(n2<0)n2=0;
 
    swap( A, n1, n2 );
 
     // Вывод матрицы
    Print(A,n,m);
 
    // освобождаем память, выделенную под матрицу и вектор
    Free( A, n );
 
    // ждём нажатия клавиши перед выходом из приложения (windows)
    //system( "pause" );
 
    return 0;
}
1
0 / 0 / 0
Регистрация: 10.12.2017
Сообщений: 14
15.12.2017, 10:06  [ТС] 3
zss, Спасибо, все получилось.
0
0 / 0 / 0
Регистрация: 10.12.2017
Сообщений: 14
25.12.2017, 16:09  [ТС] 4
Нужна помощь, надо сделать так чтобы та строка где был обнаружен 0 выводилась вместе с сообщением обнаружен 0

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
#include <cstdlib>
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main(int argc, char *argv[])
 
{
    system("chcp 1251");
    int n;
    srand(time(NULL));
    int A = -7, B = 8, res = 1;
    printf("\n");
    printf("введите кол-во строк/столбцов:");
    scanf_s("%d", &n);
    int **x = new int*[n];
    for (int i = 0; i < n; i++)
    {
        x[i] = new int[n];
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            x[i][j] = A + rand() % ((B + 1) - A);
        }
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (x[i][j] == 0)
            {
                printf("Нашли нуль ...");
                printf("\n");
                continue;
            }
            if (x[i][j] >0)
            {
                res *= x[i][j];
            }
        }
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            printf("%4d", x[i][j]);
        }
        printf("\n");
    }
    
    delete[] x;
    system("PAUSE");
    return (0);
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2017, 16:09
Помогаю со студенческими работами здесь

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

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

Двумерный массив: поменять местами две строки
Нужно поменять местами две строки в массиве:строку, которая содержит максимальный элемент...

Двумерный массив: поменять местами две строки
В матрице из целых положительных чисел поменять местами две строки: строка, которая содержит...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru