Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 08.12.2015
Сообщений: 3
1

Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной

12.03.2016, 12:52. Показов 864. Ответов 2
Метки нет (Все метки)

Мой код.

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
#include <iostream>
#include <stdlib.h>
#include<iomanip>
using namespace std;
 
 
void min_max(int*pa, int*pb, int*pc);
    
void main(){
    int a = 1, b = 1,c = 1;
    int*pa = &a, *pb = &b, *pc = &c;
    cout << a << b << c;
    min_max(pa, pb, pc);
    cout << a << b << c;
 
    system("pause");
}
 
void min_max(int*pa, int*pb, int*pc){
    int*max = 0, *min = 0, tmp;
    if (*max < *pa)
        *max = *pa;
    if (*max < *pb)
        *max = *pb;
    if (*max < *pc)
        *max = *pc;
    if (*min > *pa)
        *min = *pa;
    if (*min > *pb)
        *min = *pb;
    if (*min > *pc)
        *min = *pc;
    tmp = *max;
    *max = *min;
    *min = tmp;
}
При компиляции получаю - frames below may be incorrect and/or missing no symbols loaded for kernel32.dll.
P.S. Только начал изучать С++, с указателями еще не разобрался. Укажите пожалуйста в чём ошибка.

Добавлено через 17 минут
уже вижу что напутал с указателями на указатели


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
#include <iostream>
#include <stdlib.h>
#include<iomanip>
using namespace std;
 
 
void min(int**ppa,int**ppb,int**ppc);
 
void main(){
    int a=1,b=2,c=3;
    int*pa=&a,*pb=&b,*pc=&c;
    int**ppa=&pa,**ppb=&pb,**ppc=&pc;
    cout<<a<<b<<c;
    min(ppa,ppb,ppc);
    cout<<a<<b<<c;
    system("pause");
}
    
void min(int**ppa,int**ppb,int**ppc){
    int **max = 0, **min = 0;
 
    if(**max<**ppa)
        **max=**ppa;
    if(**max<**ppb)
        **max=**ppb;
    if(**max<**ppc)
        **max=**ppc;
    if(**min>**ppa)
        **min=**ppa;
    if(**min>**ppb)
        **min=**ppb;
    if(**min>**ppc)
        **min=**ppc;
    int tmp;
    tmp=**max;
    **max=**min;
    **min=tmp;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2016, 12:52
Ответы с готовыми решениями:

В matlab есть указатели на переменные или что-нибудь похожее на указатели?
Здравствуйте, в matlab есть указатели на переменные? или что-нибудь похожее на указатели? нужно...

Используя нетипизированные указатели и указатели на подпрограммы обобщить сортировку пузырьком
Смысл задания в том, что нужно отсортировать массив структур из 3х полей по сумме координат есть...

Выполнить обмен значениями двух переменных используя указатели на эти переменные
Выполнить обмен значениями двух переменных используя указатели на эти переменные.

Поменять строки местами, используя указатели
Доброго времени суток! Такое дело: имеется двумерный массив char (массив строк в общем-то)....

2
62 / 62 / 55
Регистрация: 18.10.2014
Сообщений: 190
12.03.2016, 13:03 2
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
#include <iostream>
#include <stdlib.h>
#include<iomanip>
using namespace std;
 
void min_max(int*pa, int*pb, int*pc);
    
void main(){
    int a = 2, b = 1,c = 3;
    int*pa = &a, *pb = &b, *pc = &c;
    cout << a << b << c<<endl;
    min_max(pa, pb, pc);
    cout << a << b << c;
 
    system("pause");
}
 
void min_max(int*pa, int*pb, int*pc){
    int*max , *min, tmp;
    max=min=pa;//указываем на первое число ,если 0 то не правильно так как в проверка мб такое что нет 0
    if (*max < *pb)//проверяем на след 2 числа
        max = pb;//указывает если максим
    if (*max < *pc)//тоже самое
        max = pc;
    if (*min > *pb)//проверка на минимум
        min = pb;//указывает на минимум 
    if (*min > *pc)//
        min = pc;
    tmp = *max;//меняем местами
    *max = *min;
    *min = tmp;
}
1
0 / 0 / 0
Регистрация: 08.12.2015
Сообщений: 3
12.03.2016, 13:10  [ТС] 3
Спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2016, 13:10

Поменять элементы массива местами используя указатели
Указатель не должен менять своего значения

Поменять местами элементы двух массивов (используя указатели)
Помогите с заданием : поменять местами элементы 2х массивов c++. Нужно сделать с использование...

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

Поменять местами элементы массива с четными и нечетными индексами используя указатели
Поменять местами элементы массива с четными и нечетными индексами используя указатели Ну вот не...

Используя указатели, выделите память для действительной переменной, заполните ее случайным числом
Используя указатели, выделите память для действительной переменной, заполните ее случайным числом,...

Найти значение минимального элемента массива используя указатели
Написать программу, создающую массив из 10 случайных целых чисел из отрезка . Вывести на экран весь...


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

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

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