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

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

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

Поменять местами в последовательности наибольший и наименьший члены с помощью указателей - C++

18.11.2014, 18:51. Просмотров 327. Ответов 4
Метки нет (Все метки)

Дано натуральное число http://www.cyberforum.ru/cgi-bin/latex.cgi?n(n\leq 100) и последовательность целых чисел http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{1},{a}_{2},...{a}_{n}
Поменять местами в этой последовательности наибольший и наименьший члены .
Если в последовательности несколько наибольших или наименьших элементов , то
рассматривать последние из таких. Для доступа к элементам массива воспользоваться
указателями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2014, 18:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поменять местами в последовательности наибольший и наименьший члены с помощью указателей (C++):

Поменять в данной последовательности целых чисел местами наибольший и наименьший члены - C++
Поменять в данной последовательности целых чисел местами наибольший и наименьший члены.

Поменять местами наибольший и наименьший элементы последовательности - C++
Даны действительные числа a1, a2, ..., an. Поменять местами наибольший и наименьший элементы. Заранее премного благодарен.

Поменять наибольший и наименьший элемент последовательности местами - C++
Дана последовательность из 10 чисел. Поменять наибольший и наименьший элемент местами (рассмотреть вариант когда их несколько) #include...

Поменять местами наибольший и наименьший элементы - C++
1. Даны действительные числа а1, а2, ... , аn. Поменять местами наибольший и наименьший элементы. 2. Даны целые числа а1,а2, ..., аn и...

Поменять местами наибольший и наименьший элементы - C++
В общем задание было такое: (Тема одномерные массивы) Даны действительные числа а1, а2,..., аn. Поменять местами наибольший и наименьший...

Поменять местами наибольший и наименьший элементы - C++
Даны действительные числа х1,....,хn (все числа попарно различны). Поменять местами наибольший и наименьший элементы.

4
Boleon
Guardian of Asgaard
372 / 315 / 106
Регистрация: 11.11.2013
Сообщений: 1,046
Завершенные тесты: 1
18.11.2014, 18:58 #2
находишь в массиве последний min и последний max, и затем меняешь их местами.
0
mss307
118 / 118 / 25
Регистрация: 14.12.2013
Сообщений: 352
18.11.2014, 19:22 #3
Цитата Сообщение от vikky Посмотреть сообщение
Для доступа к элементам массива воспользоваться
указателями.
примеры:
C++
1
2
int     mas[3] = {1, 6, 8};
    std::cout << *(mas) << " " << *(mas + 1) << " " << *(mas + 2) << std::endl;
C++
1
2
3
4
5
    int     mas[3] = {1, 6, 8};
    int*    p = mas;
    std::cout << *(p) << " ";
    p = mas + 1;
    std::cout << *(p) << " ";
0
Nosey
1348 / 399 / 107
Регистрация: 22.10.2014
Сообщений: 863
Завершенные тесты: 2
18.11.2014, 19:41 #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
#include "stdafx.h"
#include <iostream>
#include <locale>
 
int _tmain(int argc, _TCHAR* argv[])
{
    std::locale::global(std::locale(""));
    std::cout << "Введите N" << std::endl;
    int n = 0;
    std::cin >> n;
    int *nArrayBegin = new int[n];
    int *nArrayEnd = nArrayBegin + n;
    for (int *arValue = nArrayBegin; arValue < nArrayEnd; ++arValue)
    {
        *arValue = rand();//Заполним случайными значениями.
    }
 
    std::cout << "---------- Начальная последовательность" << std::endl;
    for (int *arValue = nArrayBegin; arValue < nArrayEnd; ++arValue)
    {
        std::cout << *arValue << std::endl;
    }
 
    int *min = nArrayBegin;
    int *max = nArrayBegin;
    for (int *arValue = nArrayBegin; arValue < nArrayEnd; ++arValue)
    {
        // Найти последний min и последний max среди массива.
    }
 
    std::swap(*min, *max);// меняешь местами.
 
    std::cout << "---------- Результирующая последовательность" << std::endl;
    for (int *arValue = nArrayBegin; arValue < nArrayEnd; ++arValue)
    {
        std::cout << *arValue << std::endl;
    }
 
    delete[] nArrayBegin;
    
    
    int t;
    std::cin >> t;
    return 0;
}
0
Boleon
Guardian of Asgaard
372 / 315 / 106
Регистрация: 11.11.2013
Сообщений: 1,046
Завершенные тесты: 1
19.11.2014, 00:53 #5
Если все функции писать самому:
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
56
57
58
#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
void print(int* array, int size) {
    int last = size - 1;
    
    for ( int i = 0; i < last; i++ ) {
        cout << *(array+i) << " ";
    }
    cout << *(array+last) << endl;
}
 
void swap(int* array, int size) {
    int temp;
    int min = 0;
    int max = 0;
    
    for ( int i = 0; i < size; i++ ) {
        if ( *(array+min) >= *(array+i) ) {
            min = i;
        }
        if ( *(array+max) <= *(array+i) ) {
            max = i;
        }
    }
    temp = *(array+min);
    *(array+min) = *(array+max);
    *(array+max) = temp;
    
    print(array, size);
}
 
void randomize(int size) {
    int array[size];
    
    srand(time(NULL));
    
    for ( int i = 0; i < size; i++ ) {
        *(array+i) = rand() % 100;
    }
    print(array, size);
    swap(array, size);
}
 
int main() {
    int n;
    
    cin >> n;
    
    if ( n <= 100 ) {
        randomize(n);
    }
    
    return 0;
}
Код
@input:
20

@output:
17 85 38 85 94 63 65 80 34 39 56 26 13 43 0 0 58 40 11 47 
17 85 38 85 0 63 65 80 34 39 56 26 13 43 0 94 58 40 11 47
0
19.11.2014, 00:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2014, 00:53
Привет! Вот еще темы с ответами:

Поменять местами наибольший и наименьший элементы? - C++
Даны действительные числа а1, а2, ... an

Поменять местами наибольший и наименьший элементы - C++
Ребят помогите пожалуйста. Даны действительные числа х1,...,хn (все числа попарно различны). Поменять местами наибольший и наименьший...

Поменять местами наибольший отрицательный и наименьший положительный - C++
Поменять местами наибольший отрицательный и наименьший положительный элементы вектора A(10). Вывести их значения на печать.

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


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

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

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