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

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

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

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

12.03.2016, 12:52. Просмотров 278. Ответов 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
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2016, 12:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной (C++):

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

Поменять местами элементы массива с четными и нечетными индексами используя указатели - C++
Поменять местами элементы массива с четными и нечетными индексами используя указатели Ну вот не знаю как сделать, честно... Мой...

Указатели и указатели на указатели, а также типы данных - C++
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Массивы и Указатели: распечатать таблицу,содержащую имя переменной,ее значение и адрес - C++
Условие:Написать программу,которая создает несколько переменных целого и вещественного типа,для каждой переменной создает указатель,а затем...

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

Через указатели на указатели посчитать сумму двух чисел и записать в третье - C++
1. Через указатели на указатели посчитать сумму двух чисел и записать в третье. 2. Написать примитивный калькулятор, пользуясь только...

2
Dastan4ik
62 / 62 / 31
Регистрация: 18.10.2014
Сообщений: 190
Завершенные тесты: 2
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
DieOut
0 / 0 / 0
Регистрация: 08.12.2015
Сообщений: 3
12.03.2016, 13:10  [ТС] #3
Спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2016, 13:10
Привет! Вот еще темы с ответами:

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов? - C++
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;// выделил для первой строки матрицы два...

Отсортировать массив и вывести на экран (массивы и указатели на указатели) - C++
Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s- результат сессии F студента. Отсортировать массив S по...

Написать программу сортировки через указатели на указатели - C++
Вот моя программа #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; using namespace std; //Сортировка &quot;пузырьком&quot;. ...

Указатели на слонов или А зачем нужны указатели? - C++
Знаю что таких вопросов было уйма, но я так и не нашел ответа на свой вопрос. Для чего нужны указатели? Что такое указатели я знаю, это...


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

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

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