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

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

Войти
Регистрация
Восстановить пароль
 
Saddiel
7 / 7 / 0
Регистрация: 02.11.2012
Сообщений: 152
#1

Создать функцию, меняющую местами в одномерном массиве 1ый элемент с последним, 2ой с предпоследним и т.д - C++

19.06.2013, 15:05. Просмотров 535. Ответов 3
Метки нет (Все метки)

Здравствуйте, форумчане.

Создать функцию, меняющую местами в одномерном массиве 1ый элемент с последним, 2ой с предпоследним и т.д.. Для работы с элементами массива использовать указатель. Примените данную функцию к строкам матрицы В размерности N на M.

Помогите в решении данной задачи. Очень нужно, очень был бы благодарен! Я просто на стадии зародыша, и могу рассказать программу только на человеческом языке, и то не факт, что верно. Сам я новичек в программировании.. Вообщем мы должны в нашей функции разобрать одну строку этого двумерного массива, поменять местами от начала и от конца переменные и уже в самой программе применить эту функцию для всей матрицы? Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2013, 15:05     Создать функцию, меняющую местами в одномерном массиве 1ый элемент с последним, 2ой с предпоследним и т.д
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Desu_Is_A_Lie
62 / 62 / 3
Регистрация: 26.02.2012
Сообщений: 114
19.06.2013, 15:45     Создать функцию, меняющую местами в одномерном массиве 1ый элемент с последним, 2ой с предпоследним и т.д #2
Тип не указан, посему вот шаблонная:
C++
1
2
3
4
5
6
7
8
template <typename T>
void ArrMirr(T *pArr, std::size_t szArr)
{
    T   *pElem1 = pArr;
    T   *pElem2 = &pArr[szArr-1];
 
    while (pElem1 != pElem2)    {std::swap(*pElem1++, *pElem2--);}
}
Saddiel
7 / 7 / 0
Регистрация: 02.11.2012
Сообщений: 152
19.06.2013, 16:25  [ТС]     Создать функцию, меняющую местами в одномерном массиве 1ый элемент с последним, 2ой с предпоследним и т.д #3
Цитата Сообщение от Desu_Is_A_Lie Посмотреть сообщение
Тип не указан, посему вот шаблонная:
C++
1
2
3
4
5
6
7
8
template <typename T>
void ArrMirr(T *pArr, std::size_t szArr)
{
    T   *pElem1 = pArr;
    T   *pElem2 = &pArr[szArr-1];
 
    while (pElem1 != pElem2)    {std::swap(*pElem1++, *pElem2--);}
}
Спасибо большое. Ну типа char, видимо. Не знаю, в задаче не было указано. Вроде, практически все понял в функции, но как встроить в программу. Ну т.е я знаю как будет распологаться, ниже инт мэин, но я сам принцип создания функций не понимаю, что нам она дала то..

Добавлено через 31 минуту
Знакомый человечек предложил этот вариант, но не можем найти ошибку

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
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<windows.h>
#include<time.h>
using namespace std;
void Funk( int a[], const int raz)
{
int vrem;
for(int i=0; i<raz; i++)
       for(int j=raz-1-i; j>=0; j--)
                {vrem=*(a+i);
                *(a+i)=*(a+j);
                a[j]=vrem;}
  for(int i=0; i<raz; i++)
  cout<<*(a+i)<<" ";
 }
  
 int main()
 {
     srand(time(NULL));
     SetConsoleCP(1251);
     SetConsoleOutputCP(1251);
     int n, m;
     cout<<""<<endl;
     cin>>n>>m;
     int **a = new int*[n];
     for(int i = 0; i < n; i++)
            *(a+i) = new int[m];
     for(int i=0; i<n; i++)
            for(int j=0; j<m; j++)
                    *(*(a+i)+j)=rand()%10;
    for(int i=0; i<n; i++)
            {for(int j=0; j<m; j++)
                    cout<<*(*(a+i)+j)<<" ";
            cout<<endl;}
     //for(int i=0; i<n; i++)
     cout<<Funk(*a,m);
     system("pause");
     
     }
                   
    end.
И, кстати, шаблонные функции нельзя использовать вроде как.
Desu_Is_A_Lie
62 / 62 / 3
Регистрация: 26.02.2012
Сообщений: 114
19.06.2013, 19:27     Создать функцию, меняющую местами в одномерном массиве 1ый элемент с последним, 2ой с предпоследним и т.д #4
C++
1
2
3
4
5
6
7
void ArrMirr(int *pArr, std::size_t szArr)
{
    int *pElem1 = pArr;
    int *pElem2 = &pArr[szArr-1];
 
    while (pElem1 < pElem2) {std::swap(*pElem1++, *pElem2--);}
}
(в той шаблонной ошибка, работает только для чётных, недосмотрел)
Yandex
Объявления
19.06.2013, 19:27     Создать функцию, меняющую местами в одномерном массиве 1ый элемент с последним, 2ой с предпоследним и т.д
Ответ Создать тему
Опции темы

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