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

Перегрузка функций. Переставить элементы между минимальным и максимальным в обратном порядке

03.03.2015, 22:55. Показов 772. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья, нужна Ваша помощь. Начали изучать перезагрузку функций.
Так как только начал работать с перегрузкой ф-ций возникли проблемы с программой.
Помогите пожалуйста, сроки сдачи лабораторной поджимают!
Задание:
Написать реализацию перегруженных функций :
C++
1
2
int func(double* arr, int length);
int func(char* str);
Функция func переставляет элементы между минимальным и максимальным в обратном порядке.

Вот мои наработки:
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
#include "iostream"
#include <stdio.h>
#include <string.h>
void func(double* arr, int length);
void func(char* str);
using namespace std;
 
int main()
{
double mass1[6] = {1.4, 2.6, 3.6, 4.7, 5.4, 6.2};
char mass2[] = "HELLO";
func(mass1, 6);
func(mass2);
for (int i = 0; i < 6; i++)
{
cout << mass1[i] << endl;
}
for (int i = 0; i < 5; i++)
{
cout << mass2[i] << endl;
}
system("pause");
}
 
void func(double* arr, int length)
{
for (int i = 0; i < (length - 1) / 2; i++)
{
 
double tmp = arr[i];
arr[i] = arr[length - i - 1];
arr[length - i - 1] = tmp;
}
}
 
void func(char* str)
{
int lengt = strlen(str);
for (int c = 0; c < (lengt - 1) / 2; c++)
{
char tmp = str[c];
str[c] = str[lengt - c - 1];
str[lengt - c - 1] = tmp;
}
}
У меня здесь отражает только в обратном порядке, но не знаю как сделать, чтобы функция func переставляла элементы между минимальным и максимальным в обратном порядке.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2015, 22:55
Ответы с готовыми решениями:

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

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

Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами
Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его...

Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами
Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его...

3
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
03.03.2015, 23:08 2
В код, конечно, не вникал, но по-моему нули терминаторы забываешь ставить?
И main() должна возращать значение.

Добавлено через 8 минут
Цитата Сообщение от Daveper Посмотреть сообщение
функция func переставляла элементы между минимальным и максимальным в обратном порядке.
Я правильно понял, что надо переставить все элементы, кроме крайних?
0
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 15
03.03.2015, 23:11  [ТС] 3
все верно, я упустил это... main() должна возращать значение)

Добавлено через 1 минуту
Да, нужно переставить все элементы, кроме крайних.
0
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
03.03.2015, 23:40 4
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
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
 
void func(double*, const short&);
void func(char*);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    double mass1[] = { 1.4, 2.6, 3.6, 4.7, 5.4, 6.2 };
    char mass2[] = "HELLO";
    func(mass1, 6);
    func(mass2);
    for (short i(0); i < 6; i++)
    {
        cout << mass1[i] << endl;
    }
    for (short i(0); i < 5; i++)
    {
        cout << mass2[i] << endl;
    }
    system("pause");
    return 0;
}
 
void func(double* arr, const short& length)
{
    for (short i(1); i <= (length - 1) / 2; i++)
    {
        double tmp(arr[i]);
        arr[i] = arr[length - i - 1];
        arr[length - i - 1] = tmp;
    }
}
 
void func(char* str)
{
    int lengt = strlen(str);
    for (int c = 0; c < (lengt - 1) / 2; c++)
    {
        char tmp = str[c];
        str[c] = str[lengt - c - 1];
        str[lengt - c - 1] = tmp;
    }
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2015, 23:40
Помогаю со студенческими работами здесь

Как переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами
Подскажите как реализовать перестановку элементов массива в заданом промежутке? Минимум и максимум...

Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами
Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его...

Ввести одномерный массив А , вывести его. Переставить в обратном порядке все элементы между максимальным из отрицательных и минимальным элементами
Ввести одномерный массив А , вывести его. Переставить в обратном порядке все элементы между...

Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами массива
1. Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным...


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

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

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