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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
nonamez123
185 / 181 / 12
Регистрация: 23.10.2010
Сообщений: 1,301
#1

Передача массива в функцию - C++

28.09.2011, 23:17. Просмотров 1141. Ответов 22
Метки нет (Все метки)

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
#include <iostream>
#include <fstream>
#include <time.h>
using namespace std;
 
void maxx();
 
int main(int argc, char *argv[])
{
    
    
    int a[5];
    srand(time(NULL));
    for (int i=0; i<5; i++) {
        a[i]=rand()% 100+1;
        cout << a[i]<<endl;
    }
    maxx(a);
    system("PAUSE");
    return 0;
}
void maxx(a){
    int max;
    for (int i=0; i<5; i++) {
        if (a[i]>max) {
            max=a[i];
        }
    }
}
чот с передачей никак(((
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2011, 23:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача массива в функцию (C++):

Передача массива в функцию используя указатель на функцию - C++
У меня имеется готовая программа без передачи функции в функцию указателем, мне нужно передать функцию ввода масива в функцию его обработки...

Передача двухмерного массива из функцию в функцию - C++
Допустим у меня есть функция, в которой &quot;генерируется&quot; массив. Но нужно его передать в другую функцию, которая его выведет на экран. ...

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

Передача массива в функцию - C++
... int UnichtojenieFiguryMas( int *EnemyLocationXvalue, int z/* размер обоих массивов */, int *EnemyLocationYvalue, int Ocherednost ); ...

Передача массива в функцию - C++
Ребят, подскажите как передать массив в функцию по значению (или альтернативный вариант)? Чтобы изменялась его копия находящаяся в стеке....

Передача массива в функцию - C++
Добрый день, мне нужно посчитать кол-во счастливых билетов на определенном промежутке. Используя для этого разные функции. Но проблема в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alkagolik
Заблокирован
28.09.2011, 23:21 #2
C++
1
void maxx(int *a)
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
28.09.2011, 23:22 #3
Чтот я не пойму что должна делать функция. В ней объявляется переменная которая не возвращается, зачем? И потом лучше после объявления инициализировать ее первым элементом массива.

Вот как то так

C++
1
2
3
4
5
6
7
8
9
int maxx( a[] ){
        int max = a[0];
        for (int i=0; i<5; i++) {
                if (a[i]>max) {
                        max=a[i];
                }
        }
        return max;
}
0
alkagolik
Заблокирован
28.09.2011, 23:23 #4
а еще лучше так
C++
1
2
3
4
int maxx(int *a){
.................
     return max;
}
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
28.09.2011, 23:25 #5
Цитата Сообщение от alkagolik Посмотреть сообщение
а еще лучше так
C++
1
2
3
4
int maxx(int *a){
.................
     return max;
}
Без разницы думаю, но человек, раз задает такие вопросы, еще не сталкивался, видать, с указателями и ссылками.
0
nonamez123
185 / 181 / 12
Регистрация: 23.10.2010
Сообщений: 1,301
28.09.2011, 23:25  [ТС] #6
я это ещё не успел доделать. Меня в данный момент просто интересовал способ передачи
0
alkagolik
Заблокирован
28.09.2011, 23:26 #7
Цитата Сообщение от Toshkarik Посмотреть сообщение
int maxx( a[] )
так неверно, надо указать передать тип. int *tmp == int tmp[]
а в качестве параметра в мейне передаем только имя массива.
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
28.09.2011, 23:28 #8
Хррр, точно, проглядел.

C++
1
2
3
4
int maxx( int a[] )
{
...
}
И прототип так же

C++
1
int maxx( int [] );
0
nonamez123
185 / 181 / 12
Регистрация: 23.10.2010
Сообщений: 1,301
28.09.2011, 23:28  [ТС] #9
только я вот не понял , если при передачи указывать void maxx(int *a){ под основной программой, то что вписать сверху?
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
28.09.2011, 23:29 #10
C++
1
int maxx( int * );
0
nonamez123
185 / 181 / 12
Регистрация: 23.10.2010
Сообщений: 1,301
28.09.2011, 23:31  [ТС] #11
чот вообще запутался, теперь вот тут ругается http://gyazo.com/d2e6f28f5d29e5121833a9e5a0c7101d

Добавлено через 1 минуту
благодарю, разобрался вроде как
0
alkagolik
Заблокирован
28.09.2011, 23:34 #12
Цитата Сообщение от nonamez123 Посмотреть сообщение
то что вписать сверху
можно или саму функцию void maxx(int *a){} описать перед мейном, или описать ее после мейна, а перед мейном поместить ее прототип void maxx(int *)

Добавлено через 49 секунд
Цитата Сообщение от nonamez123 Посмотреть сообщение
теперь вот тут ругается
проинициализируйте max нулем

Добавлено через 1 минуту
int *a[] - это указатель на массив указателей)) двумерный массив.
0
nonamez123
185 / 181 / 12
Регистрация: 23.10.2010
Сообщений: 1,301
28.09.2011, 23:34  [ТС] #13
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
#include <iostream>
#include <fstream>
#include <time.h>
using namespace std;
 
int maxx( int * );
 
int main(int argc, char *argv[])
{
    
    
    int a[5];
    srand(time(NULL));
    for (int i=0; i<5; i++) {
        a[i]=rand()% 100+1;
        cout << a[i]<<endl;
    }
    cout<< maxx(a);
    system("PAUSE");
    return 0;
}
int maxx(int *a){
    int max;
    for (int i=0; i<5; i++) {
        if (a[i]>max) {
            max=a[i];
        }
    }
    return max;
}
Если не сложно, покажите как с войд выглядеть должно
0
alkagolik
Заблокирован
28.09.2011, 23:40 #14
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
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
 
const int size = 5;
int maxx( int * );
 
int main()
{
    int a[size];
    srand(time(NULL));
 
    for (int i = 0; i < size; ++i) {
        a[i] = rand() % 100 + 1;
        std::cout << a[i] << std::endl;
    }
 
    std::cout << "\n\n" << maxx(a) << std::endl;
    return 0;
}
int maxx(int *a){
    int max = 0;
    for (int i = 0; i < size; ++i)
        if (a[i] > max)
            max = a[i];
    return max;
}
0
nonamez123
185 / 181 / 12
Регистрация: 23.10.2010
Сообщений: 1,301
29.09.2011, 00:11  [ТС] #15
C++
1
2
3
4
5
6
7
8
9
int deletee(int *a){
    int del;
    cin >> del;
    for (int i=del; i<size-1; i++) {
        a[i]=a[i+1];
    }
    for (int i=0; i<size; i++) {
        cout << a[i]<< endl;
    }
вот ещё чот завис. Надо удалить произвольное число из массива... Вроде как и по логике правильно-записываем значение элемента массива следующим значением и потом выводим, но почему-то не хочет оно...

Добавлено через 3 минуты
C++
1
    for (int i=del-1; i<size-1; i++) {
как до меня щас допёрло, массивы ведь начинаются с 0, а не с 1. Следовательно надо ставить дел-1...

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
int deletee(int *a){
    int del;
    cin >> del;
    for (int i=del-1; i<size-1; i++) {
        a[i]=a[i+1];
    }
    for (int i=0; i<size-1; i++) {
        cout << a[i]<< endl;
    }
    return 0;
}
вот так вот по идее должно быть... Я прав?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2011, 00:11
Привет! Вот еще темы с ответами:

Передача массива в функцию - C++
Помогите разобраться как правильно вписать простейший массив вфункцию #include&lt;iostream&gt; #include&lt;windows.h&gt; #include&lt;ctime&gt; using...

Передача массива в функцию - C++
В общем задание такое Превратить этот код в другой код, что-то поменять, я не врубаюсь что и как. Тема называется передача массива в...

Передача массива в функцию - C++
Я только-только начал изучать указатели, поэтому в этой области туплю... У меня в функции main создается массив указателей на обьекты...

Передача массива в функцию - C++
Доброе время суток! Товарищи профессионалы! Помогите, очень прошу! как передать в функцию массив a int frik (int aa) {return (1);}...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.09.2011, 00:11
Ответ Создать тему
Опции темы

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