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

Создание шаблонной функции - C++

Восстановить пароль Регистрация
 
Bellerofont
Сообщений: n/a
23.04.2013, 02:53     Создание шаблонной функции #1
Создать шаблонную функцию, изменяющий порядок элементов таким образом: первая половина списка смещается в конец, а вторая в начало. К примеру: 1 2 3 4 5 6 - 4 5 6 1 2 3. Функция должна работать с массивом любой длины. Если количество элементов нечетное, то средний элемент обрабатывать не нужно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dalay_lama
 Аватар для dalay_lama
65 / 65 / 7
Регистрация: 22.09.2012
Сообщений: 437
23.04.2013, 09:18     Создание шаблонной функции #2
Bellerofont, вроде так:
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
#include <iostream>
using namespace std;
const int sizeAr = 7;
void course(int number[],int size);//твоя функция
 
int main()
{
    int mas[sizeAr] = {1,2,3,4,5,6,7};
    for (int i = 0; i < sizeAr; i++)
        cout <<mas[i];
    cout <<endl;    
    course(mas,sizeAr);
    
    for (int i = 0; i < sizeAr; i++)
        cout <<mas[i];
    cout <<endl;
    return 0;
}
 
void course(int number[],int size)
{
    int Fhalf,Shalf;
    Fhalf = size/2;
    if (size%2==0)
        Shalf = Fhalf;
    else
        Shalf = Fhalf+1;
    for (int i = 0,j = Shalf;i<Fhalf;i++,j++)
    {
        int k = number[i];
        number[i] = number[j];
        number[j] = k;
    }
}
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
23.04.2013, 09:34     Создание шаблонной функции #3
skorik-1992, а где шаблон?
Если взять Ваш код, то функция должна выглядеть примерно так:
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
template<class T>
void course(T number[],int size)
{
    int Fhalf,Shalf;
    Fhalf = size/2;
    if (size%2==0)
        Shalf = Fhalf;
    else
        Shalf = Fhalf+1;
    for (int i = 0,j = Shalf;i<Fhalf;i++,j++)
    {
        T k = number[i];
        number[i] = number[j];
        number[j] = k;
    }
}
int main()
{
    int mas[sizeAr] = {1,2,3,4,5,6,7};
    for (int i = 0; i < sizeAr; i++)
        cout <<mas[i];
    cout <<endl;    
    course(mas,sizeAr);
    
    for (int i = 0; i < sizeAr; i++)
        cout <<mas[i];
    cout <<endl;
    char mas2[sizeAr] = "abcdef";
    cout <<mas2<<eldl;
    course(mas2,strlen(mas2));
    cout <<mas2<<endl;
    return 0;
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
23.04.2013, 10:23     Создание шаблонной функции #4
Убираем лишнее:
C++
1
2
3
4
5
6
template<class T>
void course(T number[],int size)
{
   for(int i=0; i<size/2; i++)
      std::swap( number[i], number[size - size/2 + i] );
}
Yandex
Объявления
23.04.2013, 10:23     Создание шаблонной функции
Ответ Создать тему
Опции темы

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