Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Saddiel
7 / 7 / 3
Регистрация: 02.11.2012
Сообщений: 152
1

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

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

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

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

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

Написать программу, меняющую в одномерном массиве местами первый элемент с минимальным, а последний с максимальным
Написать программу, меняющую в одномерном массиве местами первый элемент с...

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

Реализовать функцию, меняющую местами первый столбец матрицы с последним
Помогите, пожалуйста,написать эту программу_( Из файла file1.txt считывается...

Двумерные массивы. Поменять местами первый элемент в каждой строке с последним, второй - с предпоследним и т.д
В матрице Z(4,6) поменять местами первый элемент в каждой строке с последним,...

В одномерном массиве, который содержит 15 символов первый символ поменять местами с последним
В одномерном массиве, который содержит 15 символов первый символ поменять...

3
Desu_Is_A_Lie
62 / 62 / 16
Регистрация: 26.02.2012
Сообщений: 114
19.06.2013, 15:45 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--);}
}
1
Saddiel
7 / 7 / 3
Регистрация: 02.11.2012
Сообщений: 152
19.06.2013, 16:25  [ТС] 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.
И, кстати, шаблонные функции нельзя использовать вроде как.
0
Desu_Is_A_Lie
62 / 62 / 16
Регистрация: 26.02.2012
Сообщений: 114
19.06.2013, 19:27 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--);}
}
(в той шаблонной ошибка, работает только для чётных, недосмотрел)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2013, 19:27

В массиве поменять местами максимальный элемент с последним
Массив содержит 18 элементов вещественного типа. В этом массиве поменять...

Поменять местами 1ый и последний элемент списка C++
Ребят посмотрите задачу! исправьте пожалуйста! завтра сдавать, а я не понимаю...

Поменять местами столбцы в квадратной матрице по правилу: первый с последним, второй с предпоследним и т.д.
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt;...


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

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

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