Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
14 / 14 / 6
Регистрация: 10.09.2013
Сообщений: 67
1

Передача указателя

24.11.2013, 18:28. Просмотров 460. Ответов 6
Метки нет (Все метки)

Здравствуйте!
Форумчане, очень нужна помощь..

В общем ситуация такова: написана программа, нужно переделать её так,
чтобы в функции передавался не массив, а указатель на него.
Пардоньте)
Знаю, похожие темы уже были, но я () всё равно не смог разобраться, даже с их помощью

Вот код:
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
#include <iostream>
using namespace std;
 
int max_search(int a[], int l);
int min_search(int a[], int l);
int main()
{
    int a[10];
    int i;
    for (i=0; i<10; i++) a[i]=rand();
    cout<<"Массив заполнен."<<endl;
    cout<<"Минимальное значение: "<<min_search(a,10)<<endl;
    cout<<"Максимальное значение: "<<max_search(a,10)<<endl;
    
    system ("pause");
    return 0; 
}
 
int max_search(int a[], int l)
{
    int max=0;
    for (int i=0; i<l; i++) {
        if (a[i]>max) max=a[i];
        }
    return max;
}
 
int min_search(int a[], int l)
{
    int min=0;
    for (int i=0; i<l; i++) {
        if (a[i]<min) min=a[i];
        }
    return min;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2013, 18:28
Ответы с готовыми решениями:

передача указателя
какой способ передачи указателя наиболее быстрый? int a = 1; int *b= &amp;a;...

Передача указателя функции
Друзья! Need help! Есть пример &quot;Переменный список параметров указателей&quot;. В функции подсчитываем...

Передача двойного указателя
Написал прогу которая работает с односвязным списком. При передаче в функцию двойного указателя, я...

Передача указателя по ссылке
Так печатается &quot;12&quot; #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; void...

6
:)
Эксперт С++
4764 / 3258 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
24.11.2013, 18:31 2
Цитата Сообщение от timaberezhnov Посмотреть сообщение
чтобы в функции передавался не массив, а указатель на него
Массивы всегда передаются как указатель. Записи
C++
1
void f( int a[] );
и
C++
1
void f( int* a );
эквивалентны.
1
14 / 14 / 6
Регистрация: 10.09.2013
Сообщений: 67
24.11.2013, 18:36  [ТС] 3
Tulosba, спасибо!
Я знаю это) Но хочется знать оба варианта, всё-таки без указателей далеко не уедешь
0
:)
Эксперт С++
4764 / 3258 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
24.11.2013, 18:44 4
Цитата Сообщение от timaberezhnov Посмотреть сообщение
Я знаю это) Но хочется знать оба варианта
Не очень понятно. Я не ответил на Ваш вопрос?
1
14 / 14 / 6
Регистрация: 10.09.2013
Сообщений: 67
24.11.2013, 18:54  [ТС] 5
Tulosba, не совсем.
Что не верно?
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
#include <iostream>
using namespace std;
 
int max_search(int*a, int l);
int min_search(int*a, int l);
int main()
{
    int a[10];
    int i;
    for (i=0; i<10; i++) a[i]=rand();
    cout<<"Ìàññèâ çàïîëíåí."<<endl;
    cout<<"Ìèíèìàëüíîå çíà÷åíèå: "<<min_search(int*a,10)<<endl;
    cout<<"Ìàêñèìàëüíîå çíà÷åíèå: "<<max_search(int*a,10)<<endl;
    
    system ("pause");
    return 0; 
}
 
int max_search(int*a, int l)
{
    int max=0;
    for (int i=0; i<l; i++) {
        if (a[i]>max) max=a[i];
        }
    return max;
}
 
int min_search(int*a, int l) {
    int min=0;
    for (int i=0; i<l; i++) {
        if (a[i]<min) min=a[i];
        }
    return min;
}
0
:)
Эксперт С++
4764 / 3258 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
24.11.2013, 18:57 6
Цитата Сообщение от timaberezhnov Посмотреть сообщение
Что не верно?
При вызове: строки 12,13 тип указывать не надо:
C++
1
min_search(a,10)
Поиск мин/макс лучше начинать со сравнения с первым элементом, а не с нулем. Иначе будут ошибки.
1
14 / 14 / 6
Регистрация: 10.09.2013
Сообщений: 67
25.11.2013, 15:54  [ТС] 7
Tulosba, Спасибо большое!

Не по теме:

Шикарный форум!:good:


Итог
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>
using namespace std;
 
int max_search(int*a, int l);
int min_search(int*a, int l);
int main()
{
    int arr[10];
    int i;
    for (i=0; i<10; i++) {
        cout<<"Введите "<<i+1<<"-й элемент массива: ";
        cin>>arr[i];
        cout<<endl;
        }
    cout<<"Массив заполнен."<<endl;
    cout<<"Минимальное значение: "<<min_search(arr,10)<<endl;
    cout<<"Максимальное значение: "<<max_search(arr,10)<<endl;
    
    system ("pause");
    return 0; 
}
 
int max_search(int*a, int l)
{
    int max=a[0];
    for (int i=0; i<l; i++) {
        if (a[i]>max) max=a[i];
        }
    return max;
}
 
int min_search(int*a, int l) {
    int min=a[0];
    for (int i=0; i<l; i++) {
        if (a[i]<min) min=a[i];
        }
    return min;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2013, 15:54

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Передача указателя в функцию
Здраствуйте. Если не охота читать гору текста то этот абзац + последущий за ним код можете...

Передача указателя на функцию
Доброго дня Форумчане. Хотелось бы узнать как вызывать функцию получив на нее указатель? пример...

Передача в функцию указателя
Почему плохо передавать в функцию указатель на строку или массив и возвращать указатель на строку...

Передача указателя в функцию
Поиском не пользовался, возможно данный вопрос уже проскакивал. Проблема том, что VS2010 на отрез...


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

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

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