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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
taldarimm
1 / 1 / 0
Регистрация: 31.01.2012
Сообщений: 5
#1

нужна функция для обмена строк двумерного массива на плюсах - C++

31.01.2012, 22:35. Просмотров 827. Ответов 4
Метки нет (Все метки)

доброго времени суток нужна ваша помощь в решении задачи
вот здесь она уже решена но это c# а мне нужно точно такаяже прога на плюсах
http://www.cyberforum.ru/csharp-net/...ead406369.html
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2012, 22:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос нужна функция для обмена строк двумерного массива на плюсах (C++):

Написать функцию для обмена строк двумерного массива - C++
Написать функцию для обмена строк двумерного массива с ее помощью отсортировать массив по элементам третьего столбца.

Напишите функцию для обмена строк двумерного массива и с ее помощью отсортируйте массив с элементами третьего столбика - C++
Помогите,пожалуйста,написать функцию.Вот задание: Напишите функцию для обмена строк двумерного массива и с ее помощью отсортируйте массив...

Нужна рекурсивная функция для переворачивания строк - C++
Write a recursive function to reverse a string :coffee:

Функция для двумерного массива - C++
Мне нужно написать функцию или скажите, пожалуйста, правильно ли она составлена в коде /* в каждой строке существуют элементы на...

Функция fill Для двумерного массива - C++
Как использовать функцию fill с двумерным массивом std::fill(array, array + size, 1.0); к примеру есть двумерный массив int...

Шаблонная функция для инициализации двумерного массива - C++
Вот так можно сделать функцию для иниц. двумерного массива типа int. int** CreateArray(int row,int column) { int** arr =...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
31.01.2012, 23:50 #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
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
#include<iostream>
#include<iomanip>
int main(void)
{
 
    int mas[][5] ={ { 1, 2, 3, 4, 5 }, { 11, 22, 33, 44, 55 }, { 6, 7, 8, 9, 0 }, { 66, 77, 88, 99, 00 }, { 1, 3, 5, 7, 9 } };
    //показываю не отвортерованые массивы
    for(int i=0;i<5;i++)
    {
        for(int f=0;f<5;f++)
        {
            std::cout<<mas[i][f]<<' ';
            if(i%2==0)
            {std::cout<<' ';}
        }
        std::cout<<std::endl;
    }
    
    int** mas_pt= new int*[5];
    for(int i=0;i<5;i++)
    {
        mas_pt[i]=new int[5];
        for(int d = 0;d<5;d++)
        {
            mas_pt[i][d]= mas[i][d];    
        }
    }
    //сортировака указателей по третему стоблцу
    for(int i =0;i<4;i++)
    {   for(int k=i+1;k<5;k++)
        {
            if(mas_pt[i][2]>mas_pt[k][2])
            {
                int* temp=mas_pt[i];
                mas_pt[i] = mas_pt[k];
                mas_pt[k] = temp;
            }
        }
    }
    //вывод на экран отсортированного массива
    std::cout<<std::endl;
    for(int i=0;i<5;i++)
    {
        for(int f=0;f<5;f++)
        {
            std::cout<<std::setw(1)<<mas_pt[i][f]<<' ';
            if(i<3)
            {std::cout<<' ';}
        }
        std::cout<<std::endl;
    }
    system("pause");
return 0;
}
Согласен грязновато написано, но рабочий код есть теперь можно заняться оптимезацией....убрать лишнее.
P.S: писав в Visual Studio 10 так что если что то не будет работать можно что нибудь придумать.
0
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
01.02.2012, 00:09 #3
Цитата Сообщение от taldarimm Посмотреть сообщение
нужна функция для обмена строк двумерного массива на плюсах
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
#include <iostream>
#include <iomanip>
 
template <class T>
void my_swap(T& a, T& b)
{
    T c = a;
    a = b;
    b = c;
}
 
template <class Iterator>
void swap_rows
(
    Iterator first1, const Iterator& last1,
    Iterator first2, const Iterator& last2
)
{
    while((first1 != last1) && (first2 != last2))
        my_swap(*first1++, *first2++);
}
 
int main()
{
    const std::size_t rows = 4;
    const std::size_t cols = 5;
    int arr[rows][cols] = { { 1,  2,  3,  4,  5  },
                            { 6,  7,  8,  9,  0  },
                            { -1, -2, -3, -4, -5 },
                            { -6, -7, -8, -9, 0  } };
    for(const auto& i: arr)
    {
        for(const auto& j: i)
            std::cout << std::setw(4) << j;
        std::cout << std::endl;
    }
    std::cout << std::endl;
    swap_rows
    (
        *arr,       *arr + cols,
        *(arr + 2), *(arr + 2) + cols
    );
    swap_rows
    (
        *(arr + 1), *(arr + 1) + cols,
        *(arr + 3), *(arr + 3) + cols
    );
    for(const auto& i: arr)
    {
        for(const auto& j: i)
            std::cout << std::setw(4) << j;
        std::cout << std::endl;
    }
    return 0;
}
http://liveworkspace.org/code/4b382a...19042e9d21b660
0
taldarimm
1 / 1 / 0
Регистрация: 31.01.2012
Сообщений: 5
01.02.2012, 01:49  [ТС] #4
спасибо сам я работаю (вернее учусь ) в devcpp но думаю подогнать прогу ума хватит.. а если не хватит еще поговорим ))

Добавлено через 2 минуты
работает !!!

Добавлено через 3 минуты
вот только если не трудно прокоментите как оно работает ) мне надо вывод к лабе написать
Цель: Организовать обработку массивов с использованием функций, научиться передавать массивы как параметры функций.

вывод типа : я молодец в ходе выполнения лабы я научился ..... не катируется буду сочинять )

Добавлено через 21 минуту
сразу первый вопрс (думаю грамотный )
в чем писалась програмулина dev? visual? LWS ?
ибо
вторая прога чет на int main матюгается хотя его там даже нет


[Build Error] [massive_main.o] Error 1


`int main()' redeclared as different kind of symbol
int main обьявлена в разных видах символа (чесно ниче не понял )


ISO C++ forbids declaration of `i' with no type
запрещает представлять 'i' без типа

это еще не все на что он матюкается
0
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
01.02.2012, 02:08 #5
taldarimm, значит ваш компилятор не поддерживает новый стандарт. Забейте, вам нужна только функция, верно? Ну дак она в строках ##4 - 21
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2012, 02:08
Привет! Вот еще темы с ответами:

Функция для удаления строки из двумерного массива - C++
Массив должен передаваться в функцию как параметр. Написать функцию для удаления строки из двумерного массива. Оставшиеся строки должны...

Для заданного двумерного массива из n строк и m столбцов: - C++
помогите уже неделю не могу решить эту задачу Для заданного двумерного массива из n строк и m столбцов: Осуществить сглаживание...

Для заданного двумерного числового массива подсчитать количество таких строк, в которых положительных элементов больше, чем отрицатель-ных. - C++
Доброго времени суток. Помогите написать программу по заданию, но в более простом варианте. &quot;Для заданного двумерного числового...

Функция ввода двумерного массива - C++
Ребят, помогите! Надо написать функцию чтобы с помощью нее мы вводили двумерный массив! Не знаю какие параметры задать и что внутри...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.02.2012, 02:08
Ответ Создать тему
Опции темы

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