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

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

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

Дано натуральное число https://www.cyberforum.ru/cgi-bin/latex.cgi?n(n\leq 100) и последовательность целых чисел https://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{1},{a}_{2},...{a}_{n}
Поменять местами в этой последовательности наибольший и наименьший члены .
Если в последовательности несколько наибольших или наименьших элементов , то
рассматривать последние из таких. Для доступа к элементам массива воспользоваться
указателями.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2014, 18:51
Ответы с готовыми решениями:

Поменять в последовательности местами наибольший и наименьший члены
Разработать программу для решения задачи Даны действительные числа a1,...,a20 (все числа попарно...

Поменять местами наибольший и наименьший члены последовательности
1 - Разработать программу для решения задачи. Даны действительные числа a1,...,a20 (все числа...

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

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

4
Guardian of Asgaard
377 / 319 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
18.11.2014, 18:58 2
находишь в массиве последний min и последний max, и затем меняешь их местами.
0
118 / 118 / 41
Регистрация: 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
1378 / 405 / 144
Регистрация: 22.10.2014
Сообщений: 872
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
Guardian of Asgaard
377 / 319 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2014, 00:53
Помогаю со студенческими работами здесь

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

В последовательности поменять местами наибольший и наименьший члены
Даны натуральные x1, x2, ..., xn (все числа попарно различны). Поменять местами в этой...

Одномерные массивы. В последовательности поменять местами наибольший и наименьший члены
в последовательности a0,a1,..,an поменять местами наибольший и наименьший члены

Массив: Поменять местами наибольший и наименьший члены массива...
Даны действительные числа a1...a20(все попарно различны).Поменять найбольший и найменьший члены...


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

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

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