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

Передача массива в функцию, как параметра

21.10.2014, 20:37. Просмотров 553. Ответов 6
Метки нет (Все метки)


Создать массив размерностьюN(описать константу и задать размер по умолчанию
равный 10). Разработать процедуру заполняющую массив, переданный как параметр,
случайными числами в интервале от −Nдо N. Создать дополнительную процедуру
оперирующую с сформированным массивом исходя из варианта:
Выполнить реверсию элементов находящихся между максимальным и минимальным
элементами.
в главной функции на float ругается
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
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include<cstdlib>
//#include<ctime>
 
using namespace std;
void zap(float *array[], int i)
{
   for (i=0;i<=19;i++)
   {
   *array[i]=-20+rand()%40;
   cout<<*array[i]<<' ';
   }
}
 
void fun(float *array[], int i)
{
   int i_min;
   int i_max;
   int a;
   float max_zn;
   float min_zn;
   min_zn=*array[0];
   max_zn=*array[0];
   for (i=0;i<19;i++)
   {
    if (*array[i+1]>max_zn) {max_zn=*array[i+1]; i_max=i+1;}
    if (*array[i+1]<min_zn) {min_zn=*array[i+1];  i_min=i+1;}
   }
   if (i_max<i_min) {a=i_min; i_min=i_max; i_max=i_min;}
   for (i=i_min;i<=i_max;i++)
   {
     *array[i]=-*array[i];
   }
 
    for (i=0;i<=19;i++)
   {
   cout<<*array[i]<<' ';
   }
 
}
 
 
 
 main()
{   int i=20;
    float arr[i];
 
   zap(&arr,i);
   fun(&arr,i);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2014, 20:37
Ответы с готовыми решениями:

Передача массива, как формального параметра в функцию
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; const int MAX_SIZE = 100; void...

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

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

Передача массива в функцию в качестве параметра
Всем привет! Файл с реализацией: int Init_can::Send(int* msgdata) { //Send canmsg_t tx;...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
6
6918 / 5984 / 2710
Регистрация: 14.04.2014
Сообщений: 25,506
21.10.2014, 20:55 2
C++
1
const int i = 20;
0
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
21.10.2014, 20:57 3
C++
1
const int i = 10;
Размеры статического массива должны быть константами...

P.S.
И нет смысла передавать массив как это сделано здесь. Массив - сам по себе указатель.
0
2 / 2 / 1
Регистрация: 12.10.2013
Сообщений: 246
21.10.2014, 22:05  [ТС] 4
Цитата Сообщение от monolit Посмотреть сообщение
Массив - сам по себе указатель.
то есть можно везде убрать указатели и ссылки

Добавлено через 3 минуты
то есть в функцию всегда передается сам массив, а не его копия?
0
6918 / 5984 / 2710
Регистрация: 14.04.2014
Сообщений: 25,506
21.10.2014, 22:13 5
В твоём случае можно убрать.
Не передаётся ни сам массив, ни копия. Ссылка.
0
Модератор
Эксперт С++
10462 / 8713 / 5264
Регистрация: 18.12.2011
Сообщений: 23,270
21.10.2014, 22:22 6
Имя массива - это адрес первого элемента.
Т.о. при передаче имени функция получает доступ непосредственно к элементам массива.
Никаких дополнительных указателей и ссылок не требуется.
0
846 / 777 / 258
Регистрация: 27.07.2012
Сообщений: 2,180
21.10.2014, 22:43 7
На ночь глядя...
С++03 style
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
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
/*
Создать массив размерностьюN(описать константу и задать размер по умолчанию
равный 10). Разработать процедуру заполняющую массив, переданный как параметр,
случайными числами в интервале от −Nдо N. Создать дополнительную процедуру
оперирующую с сформированным массивом исходя из варианта:
Выполнить реверсию элементов находящихся между максимальным и минимальным
элементами.
*/
 
#include <stdlib.h>
#include <iostream>
#include <ctime>
#include <algorithm>
#include <iterator>
#include <functional>
#include <boost\bind.hpp>
 
int get_random(int base, int add)
{
    return rand() % base + add;
}
 
void fill_array(float * arr, int size)
{
    std::generate(arr, arr + size, boost::bind(get_random, 2 * size, -size));
}
 
void reverse_array(float * min, float * max)
{
    float * first = std::min(min, max) + 1;
    float * last = std::max(min, max);
    if (std::distance(first, last) <= 1)
        return;
    std::reverse(first, last);
}
 
int main(void)
{
    setlocale(0, "rus");
    srand(static_cast<unsigned int>(time(NULL)));
 
    const int N = 10;
    float arr[N];
 
    fill_array(arr, N);
 
    std::cout << "Исходный массив: ";
    std::copy(arr, arr + N, std::ostream_iterator<float>(std::cout, " "));
    std::cout << "\n\n";
 
    float * min = std::min_element(arr, arr + N);
    float * max = std::max_element(arr, arr + N);
    std::cout << "Минимальный элемент: " << *min << " (индекс: " << std::distance(arr, min) << ")\n";
    std::cout << "Максимальный элемент: " << *max << " (индекс: " << std::distance(arr, max) << ")\n";
 
    reverse_array(min, max);
 
    std::cout << "Преобразованный массив: ";
    std::copy(arr, arr + N, std::ostream_iterator<float>(std::cout, " "));
    std::cout << "\n\n";
 
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2014, 22:43

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

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

Передача потока как параметра в функцию
Дорогие форумчане! Повторяю пример из книжки, пока остановился из-за ошибки. //Программа...

Передача функции (как параметра) в функцию унаследоваемого класса
Доброго времени суток. Есть класс (в моем случае это Sprite) и я создаю произвольный класс...

Передача массива как параметра функции
известно что, если нужно изменить значение переменной(а ни ее копии в стеке) нужно передать ее...


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

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

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