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

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

Войти
Регистрация
Восстановить пароль
 
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 233
#1

Динамический массив и функции - C++

13.12.2013, 00:53. Просмотров 458. Ответов 14
Метки нет (Все метки)

Здравствуйте. Я составила функцию заполнения динамического массива. У меня такой вопрос. Выведение массива на экран нужно писать в void main() или же можно оставить в функции и он все равно выведется? И еще вопросик, далее у меня еще функции, и в них мне нужно использовать элементы этого динамического массива, нужно ли использовать оператор for для заполнения или просто писать элемент, например
1). с for
C++
1
2
3
4
5
6
7
8
float point(int n,float xy[i][2])
{
float x,y;
for(int i=0;i+3<n;i++)
x=sqrt(xy[i][0]*xy[i][0]+xy[i+][0]*xy[i+][0])
y=sqrt(xy[i][1]*xy[i][1]+xy[i+][1]*xy[i+][1])
return x,y;
}
2). без for
C++
1
2
3
4
5
6
float point(int n,float xy[i][2])
{
float x,y;
x=sqrt(xy[i][0]*xy[i][0]+xy[i+][0]*xy[i+][0])
y=sqrt(xy[i][1]*xy[i][1]+xy[i+][1]*xy[i+][1])
return x,y;
3). Массив
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
#include<math.h>
float massive()
{
int n,k,i;
printf("Vvedi n - kollichestvo vershin mnogougolnika \n");
scanf("%d",&n);
int **xy=new int* [n];
for(i=0;i<n;i++)
   xy[i]=new int [2];
printf("Vvedite koordinaty vershin:\n");
 
for(i=0; i<n; i++)
 {
   scanf("%f",&xy[i][0]);
   scanf("%f",&xy[i][1]);
 }
for(k=0; k<n; k++)
printf("Koordinats: x[%d] = %5.2f;  y[%d] = %5.2f \n",i+1, xy[k][0], i+1, xy[k][1]);
return n,xy[k][2];
}
У меня при компилировании выдает много ошибок, есть еще функция, в ней тоже ошибки. Подскажите, пожалуйста, как здесь исправить.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2013, 00:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамический массив и функции (C++):

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

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

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

Динамический массив объектов класса в функции - C++
Здравствуйте! У меня данные хранятся в файле, и, чтобы их отсортировать, я решил извлекать их из файла и записывать в динамический...

Как правильно создать динамический массив из функции - C++
Вот так ругается компилятор: int** i_matrix; f(i_matrix,N, M); ............................................. void f(int**...

Динамический массив структуры в качестве параметра функции - C++
Привет! Нужна помощь ( Есть структура struct Embedded { double density; double energy; } есть 2 массива динамический ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ZeR_0
117 / 109 / 37
Регистрация: 30.01.2013
Сообщений: 297
13.12.2013, 01:21 #2
1) нужно переоформить код с тегом "С/С++"
2) читай ошибки. гугли по коду или тексту
3)
Цитата Сообщение от Nekto Посмотреть сообщение
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
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <time.h>
int** create_array(int rows, int cols)
{
 int** array=new int*[rows];
 for (int i=0;i<rows;i++)
     array[i]=new int[cols]; 
 return array;    
}
 
void input_array(int ** array,int rows, int cols)
{
 srand(time(NULL));
 for (int i=0;i<rows;i++)
     for (int j=0;j<cols;j++)
         array[i][j]=rand() % 100;
}
void print_array(int ** array, int rows, int cols)
{
 for (int i=0;i<rows;i++)
     {
      for (int j=0;j<cols;j++)
         printf("%d ", array[i][j]);
      printf("\n");
     }
}
 
void delete_array(int **array,int rows)
{
 for (int i=0;i<rows;i++) delete [] array[i];
 delete [] array;       
}
int main()
{
    int n=5; int m=6;
    int ** global_array;
    global_array=create_array(n,m);    
    input_array(global_array,n,m);
    print_array(global_array,n,m);
    delete_array(global_array,n);
    getch();
    return 0;
}
Добавлено через 1 минуту
с delete только не уверен, мб как-то по-другому надо.
0
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 233
15.12.2013, 22:25  [ТС] #3
ZeR_0, Спасибо большое. А можно соединить функции int** create_array и void input_array и void print_array вместе?
0
ZeR_0
117 / 109 / 37
Регистрация: 30.01.2013
Сообщений: 297
15.12.2013, 22:29 #4
Цитата Сообщение от -Arabella- Посмотреть сообщение
ZeR_0, Спасибо большое. А можно соединить функции int** create_array и void input_array и void print_array вместе?
да, конечно
0
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 233
17.12.2013, 21:05  [ТС] #5
ZeR_0, Объясните, пожалуйста, что делает оператор getch(); и зачем return 0?
0
ZeR_0
117 / 109 / 37
Регистрация: 30.01.2013
Сообщений: 297
17.12.2013, 21:30 #6
getch(); нужен для того, чтобы консоль не закрывалась сразу после окончания выполнения программы. Она ожидает ввод пользователя. Почти тоже самое что и system("pause");

так как main() имеет тип int, то она обязана вернуть (return) значение типа int
все функции кроме void обязаны вернуть значение.

Советую про все это прочитать отдельно
0
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 233
17.12.2013, 22:19  [ТС] #7
ZeR_0, Спасибо за пояснение А могу я int последнюю переделать в void?
0
ZeR_0
117 / 109 / 37
Регистрация: 30.01.2013
Сообщений: 297
17.12.2013, 22:27 #8
Цитата Сообщение от -Arabella- Посмотреть сообщение
ZeR_0, Спасибо за пояснение А могу я int последнюю переделать в void?
Вы можете написать void main() и в конце убрать return
0
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 233
17.12.2013, 22:27  [ТС] #9
ZeR_0, Вот еще вопросик) Эта функция заполняет массив случайными числами, я правильно понимаю?
Цитата Сообщение от ZeR_0 Посмотреть сообщение
void input_array(int ** array,int rows, int cols)
C++ (Qt)
1
2
3
4
5
6
{
strand(time(NULL));
 for (int i=0;i<rows;i++)
 for (int j=0;j<cols;j++)
array[i][j]=rand() % 100;
}
0
ZeR_0
117 / 109 / 37
Регистрация: 30.01.2013
Сообщений: 297
17.12.2013, 23:56 #10
Цитата Сообщение от -Arabella- Посмотреть сообщение
ZeR_0, Вот еще вопросик) Эта функция заполняет массив случайными числами, я правильно понимаю?
ога
0
vitecd
18 / 1 / 0
Регистрация: 26.09.2013
Сообщений: 59
18.12.2013, 03:09 #11
Уважаемая, Арабелла.
Пожалуйста, переоформите первый пост, возможно, это повлияет на дальнейшее формирование "стиля". Чтобы вас не называли, как очень хочется назвать
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.12.2013, 03:19 #12
Цитата Сообщение от ZeR_0 Посмотреть сообщение
Вы можете написать void main()
Нестандарт.
0
ZeR_0
117 / 109 / 37
Регистрация: 30.01.2013
Сообщений: 297
18.12.2013, 07:49 #13
Цитата Сообщение от alsav22 Посмотреть сообщение
Нестандарт.
Ну да в стандарте описаны только эти две. Но для С++, на сколько мне известно, писать void main() вполне нормально. Можно еще void main(void).
Разница причем есть. Это важная, но отдельная история
C++
1
2
int main();
int main(int argc, char *argv[]);
0
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 233
19.12.2013, 01:19  [ТС] #14
vitecd, А как мне переоформить? Что изменить?
Цитата Сообщение от vitecd Посмотреть сообщение
Чтобы вас не называли, как очень хочется назвать
А как вам меня хочется назвать? Интересно
0
vitecd
28.12.2013, 09:02     Динамический массив и функции
  #15

Не по теме:

нежно и ласково

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2013, 09:02
Привет! Вот еще темы с ответами:

Как передать динамический массив из функции в другую функцию - C++
Здравствуйте.Не могу передать массив из функции в функцию сортировки. Подскажите как переделать программу : #include &quot;stdafx.h&quot; ...

Динамический массив. Произведение 2х матриц с использованием собственной функции - C++
Помогите исправить ошибки и укажите на недочеты. Ошибки: Строка 54. cannot convert 'int*' to 'int**' for argument '3' to 'int*...

Как возвратить созданый динамический двухмерный массив из функции в main? - C++
Надо из функции mtx возвртить матрицу в главную функцию. Матрица создаеться и заполняеться в mtx. Подскажите как правильно его...

Одномерный динамический массив, передача в функции, добавление и удаление элемента - C++
Разбираю одномерные динамические массивы. Пока всё просто, пока и не возникает вопросов. Массив объявил, проинициализировал, сгенерировал и...


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

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

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