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

Поменять местами минимальный и максимальный элемент - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
egzest
0 / 0 / 0
Регистрация: 09.01.2012
Сообщений: 8
05.05.2012, 20:34     Поменять местами минимальный и максимальный элемент #1
Помогите сделать задачу, не понимаю как делать. Создать стек из случайных чисел и поменять местами минимальный и максимальный элементы. Знаю как найти максимальный и минимальный, а вот как их поменять..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2012, 20:34     Поменять местами минимальный и максимальный элемент
Посмотрите здесь:

C++ поменять местами минимальный и максимальный элемент в каждом столбце.
C++ Поменять местами максимальный и минимальный элемент в массиве
Поменять местами максимальный и минимальный элемент матрицы C++
В двумерном массиве поменять местами максимальный и минимальный элемент местами C++
C++ Найти в массиве максимальный элемент и минимальный элемент, и поменять их местами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,621
Записей в блоге: 17
05.05.2012, 20:47     Поменять местами минимальный и максимальный элемент #2
C++
1
2
3
4
5
6
7
8
9
10
void swap(int& a,int& b)
{
int temp=a;
a=b;
b=temp;
}
//...
int A[10];
//...
swap(A[0],A[5]); // поменять местами 0 и 5 эл-ты
egzest
0 / 0 / 0
Регистрация: 09.01.2012
Сообщений: 8
05.05.2012, 20:48  [ТС]     Поменять местами минимальный и максимальный элемент #3
Ха.. у меня же стек

C++ (Qt)
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
59
60
61
62
63
64
65
66
67
#include <iostream.h>
#include <stdlib.h>
struct tstk  
{  
    int inf;  
    tstk *a;  
};
 
 
tstk *add(tstk *sp, int inf)   
{   
    tstk *spt=new tstk; 
    spt->inf = inf; 
    spt->a = sp; 
    return spt;  
} 
 
void delstack(tstk *sp)  
{
    tstk *t;
    while(t=sp)
    {
        sp=sp->a;
        delete t;
    }
} 
 
 
void showstack(tstk *sp)  
{
    while(sp)
    {
        cout<<sp->inf<<" ";
        sp=sp->a;
    }
    cout<<endl;
}
 
int main()
{
    tstk *sp=NULL;
 
    
    int n,k; 
 
    cout<<"vvedi n: ";
    cin>>n; 
 
    for( int i=0;i<n;i++)
    {   
        cin>>k;     
        sp=add(sp,k);
    }
 
    showstack(sp);
    tstk *t=sp;
    int min,max;
    min=max=sp->inf;
    do 
    {
        if (t->inf > max) max=t->inf; 
        if (t->inf < min) min=t->inf; 
    } while(t=t->a);
    cout<<"min="<<min<<" max="<<max<<endl;
    delstack(sp);
    return 0;
}
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,621
Записей в блоге: 17
05.05.2012, 20:48     Поменять местами минимальный и максимальный элемент #4
Принцип тот же нужен буфер, просто менять будете указатели
egzest
0 / 0 / 0
Регистрация: 09.01.2012
Сообщений: 8
05.05.2012, 20:53  [ТС]     Поменять местами минимальный и максимальный элемент #5
Я ж не могу просто так с середины стека вынуть элементы, мне надо как то поднять кусок стека достать максимальный элемент, затем ещё поднять кусок стека туда вставить ....

А как этот буфер реализовать то?? в этом и загвоздка
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,621
Записей в блоге: 17
05.05.2012, 21:05     Поменять местами минимальный и максимальный элемент #6
Можно менять сами значения inf;
А можно менять указатели a в указанном элементе и элементе который стоит до.
Yandex
Объявления
05.05.2012, 21:05     Поменять местами минимальный и максимальный элемент
Ответ Создать тему
Опции темы

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