Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
lips!!
2 / 2 / 2
Регистрация: 02.04.2011
Сообщений: 86
#1

Как засунуть двумерный массив в функцию? - C++

09.04.2011, 19:25. Просмотров 1564. Ответов 20
Метки нет (Все метки)

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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int f(int,int);
void main()
{
 int a[5][5],n,m,i,q,d[5][5];
 clrscr();
 randomize();
 for(n=0;n<5;n++)
 {
  for(m=0;m<5;m++)
  {
   a[n][m]=random(10);
   printf("%i ",a[n][m]);
  }
  printf("\n");
 }
 
 scanf("%i",&q);
 d[5][5]=f(a[5][5],q);
 getch();
}
int f(int a[5][5],q)
{
 
}
выдаёт ошибку! почему?

Добавлено через 11 минут
программисты!!! тут 2 строчки всего посматреть и поправить мою программу... помагите студенту!!

Добавлено через 6 минут
форум программистов и сисадминов... ну поф на сисадминов.. программисты куда делись все????
мне с массивом 2умерным чё делать то???
мне осталось сделать 2 задачи на пятёрку.. вот эту и ещё одну!!!
в прошлом симестре экз на 5 сдал))) в этом тоже надо постаратся... только вот с массивом то чё делать???

даже если в функции написать чёнибудь с этими переменными чтоб лишний раз компилятор не вазникал.. так он говарит что типа функция f чёта бла бла бла типа чёта не то с ней!!
чё делать то??7
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2011, 19:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как засунуть двумерный массив в функцию? (C++):

Как передать двумерный массив в функцию?
например у меня есть двумерный массив 5 на 5.мне нужна функция в которой будет...

Как передать в функцию двумерный динамический массив?
#include &lt;iostream&gt; #include&lt;time.h&gt; #include&lt;cstdlib&gt; using namespace...

Как написать функцию Procent и двумерный массив?
Всем привет! Есть 2 задания, которые необходимо выполнить в DEV C++. 1)...

Как передать в функцию двумерный массив указателей на класс?
у меня есть std::vector&lt;Monster*&gt; monsters; Rect *pole; ...

Как правильно передать в функцию указатель на двумерный массив?
Сабж #include &lt;windows.h&gt; #include &lt;stdio.h&gt; using namespace std; //ОТ...

Как передать массив (двумерный/одномерный вектор) в функцию?
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int n,m;//סענמך...

20
ailia
29 / 31 / 3
Регистрация: 27.12.2009
Сообщений: 106
09.04.2011, 19:32 #2
Адрес масива есть адрес его первого элемента. Матрица является массивом масовов, поэтому надо передать в ф-цию указатель на указатель на первый элемент матрицы.
0
vitaska
90 / 90 / 15
Регистрация: 04.02.2010
Сообщений: 162
09.04.2011, 19:33 #3
во первых вместо
C++
1
int f(int a[5][5],q)
необходимо (каждый параметр должен иметь свой тип):
C++
1
int f(int a[][5], int q)
0
prazuber
09.04.2011, 19:45
  #4

Не по теме:

Если на 5 сдаешь, то такие вещи надо знать. А если не знаешь, то за что пятерку ставить-то?..

0
vitaska
90 / 90 / 15
Регистрация: 04.02.2010
Сообщений: 162
09.04.2011, 19:47 #5
сперва недоглядел полностью код
вот так будет работать
прототип функции
C++
1
int f(int mass[][5],int row, int col);
0
lips!!
2 / 2 / 2
Регистрация: 02.04.2011
Сообщений: 86
09.04.2011, 19:49  [ТС] #6
тоесть только поэлементно я так понял? сразу весь массив незапихнуть да?

Добавлено через 2 минуты
Цитата Сообщение от PraZuBeR Посмотреть сообщение

Не по теме:

Если на 5 сдаешь, то такие вещи надо знать. А если не знаешь, то за что пятерку ставить-то?..

а мы функции проходили во 2ом симестре))


Цитата Сообщение от vitaska Посмотреть сообщение
сперва недоглядел полностью код
вот так будет работать
прототип функции
C++
1
int f(int mass[][5],int row, int col);
всёравно немног непонял.. ещё 2 перменные те зачем?
0
vitaska
90 / 90 / 15
Регистрация: 04.02.2010
Сообщений: 162
09.04.2011, 19:50 #7
Цитата Сообщение от lips!! Посмотреть сообщение
тоесть только поэлементно? сразу весь массив незапихнуть да?
вы передаете весь массив, что значит поэлементно? а две переменные количество строк и столбцов

Не по теме:

непонятно вообще, что эта программа делает или должна делать

1
ailia
29 / 31 / 3
Регистрация: 27.12.2009
Сообщений: 106
09.04.2011, 19:57 #8
C#
1
2
3
4
//прототип
int f(int** a,int c,int r);
//вызов
int b = f(&a[0][0],c,r);
1
lips!!
2 / 2 / 2
Регистрация: 02.04.2011
Сообщений: 86
09.04.2011, 20:02  [ТС] #9
пишет что
undefined sumbol f(int,int,int)


мб тут чёта не так пишу??
d[n][n]=f(a[5][5],n,q);

Добавлено через 1 минуту
Цитата Сообщение от ailia Посмотреть сообщение
C#
1
2
3
4
//прототип
int f(int** a,int c,int r);
//вызов
int b = f(&a[0][0],c,r);
во вот теперь понятно.. щас попробую.. спасибо
0
vitaska
90 / 90 / 15
Регистрация: 04.02.2010
Сообщений: 162
09.04.2011, 20:04 #10
Цитата Сообщение от lips!! Посмотреть сообщение
пишет что
undefined sumbol f(int,int,int)


мб тут чёта не так пишу??
d[n][n]=f(a[5][5],n,q);

Добавлено через 1 минуту

во вот теперь понятно.. щас попробую.. спасибо
что вы хотите записать в d[n][n], ответьте сперва на этот вопрос

и если по моему варианту прототипа функции, то нужно вот так:
C++
1
 d[n][n]=f(a,n,q);
0
lips!!
2 / 2 / 2
Регистрация: 02.04.2011
Сообщений: 86
09.04.2011, 20:05  [ТС] #11
Цитата Сообщение от vitaska Посмотреть сообщение

Не по теме:

непонятно вообще, что эта программа делает или должна делать

да там тупо сортировка... ерунда, сам справлюсь..
надо было разобратся только вот с этим.. нам учитель это не обьяснял
(хотя над заданием было полюбому написано канешно, но я как обычно забыл это прочитать, дома всё делаю просто)
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
09.04.2011, 20:09 #12
ailia, такой вариант возможен только при условии, что массив динамический.
0
lips!!
2 / 2 / 2
Регистрация: 02.04.2011
Сообщений: 86
09.04.2011, 20:18  [ТС] #13
Цитата Сообщение от vitaska Посмотреть сообщение
что вы хотите записать в d[n][n], ответьте сперва на этот вопрос
да я просто варианты перебирал, пробовал всё подряд подставлять(метод тыка) иногда помогает
а то нефига не получалось

Добавлено через 7 минут
Цитата Сообщение от neske Посмотреть сообщение
ailia, такой вариант возможен только при условии, что массив динамический.
тоесть тот вариант неверный?
Цитата Сообщение от vitaska Посмотреть сообщение
и если по моему варианту прототипа функции, то нужно вот так:
C++
1
 d[n][n]=f(a,n,q);
ну вот я канешно наверное снова непонял, вы уж меня извините до меня иногда долго доходит
вот у меня массив с рандомными числами "a"
мне надо бы завести в функцию этот массив там его отсортировать и вернуть
но вот тока он снова выдаёт ошибку..
отказывается принимать вот это d[n][n]=f(a,n,q);
0
vitaska
90 / 90 / 15
Регистрация: 04.02.2010
Сообщений: 162
09.04.2011, 20:25 #14
Цитата Сообщение от lips!! Посмотреть сообщение
мне надо бы завести в функцию этот массив там его отсортировать и вернуть
вы хотите массиву d присвоить отсортированный массив a? или я не доганяю, если да то так нельзя.

сформулируйте полность ваше задание
1
lips!!
2 / 2 / 2
Регистрация: 02.04.2011
Сообщений: 86
09.04.2011, 20:28  [ТС] #15
объявление функции
int f(int,int,int); прототип как я понял

в программе запись вызова
=f(a[][],n,q) перед равно ставить чё не пойму и в квадратных скобках чё?

ну и сама функция
int f(int a[][],n,q) и тут в квадратных скобках чё ставить?

все варианты перепробовал ничё неподходит((

Добавлено через 1 минуту
Цитата Сообщение от vitaska Посмотреть сообщение
вы хотите массиву d присвоить отсортированный массив a? или я не доганяю, если да то так нельзя.

сформулируйте полность ваше задание
нет.. я просто незнал чё влевую часть писать)))
я хочу чтоб в функции отсортировался массив и вернулся в программу отсартированый

по русскому 2, извиняюсь за орфаграфию)
0
vitaska
90 / 90 / 15
Регистрация: 04.02.2010
Сообщений: 162
09.04.2011, 20:30 #16
прототип функции не
C++
1
int f(int,int,int)
, а
C++
1
int f(int [][5],int,int)
при вызове функции вы отдаете только имя массива без скобок

ну и сама функция
int f(int a[][],n,q) и тут в квадратных скобках чё ставить?
должно быть вот так
C++
1
2
3
4
int f(int a[][5], int n, int q) 
{
 
}
в списке параметров обязательно указывайте тип каждого параметра функции
1
lips!!
2 / 2 / 2
Регистрация: 02.04.2011
Сообщений: 86
09.04.2011, 20:42  [ТС] #17
int f(int a[][5], int n, int q)
{

}
вот на это ругается
говарит каннот старт а параметр деклоратион
0
ailia
29 / 31 / 3
Регистрация: 27.12.2009
Сообщений: 106
10.04.2011, 11:56 #18
Цитата Сообщение от neske Посмотреть сообщение
ailia, такой вариант возможен только при условии, что массив динамический.
Указазатель можно создать и на простой массив, поэтому мой вариант тоже подходит.
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
10.04.2011, 11:57 #19
ailia, а вы попробуйте передать указатель на двумерный статический массив.
1
ailia
29 / 31 / 3
Регистрация: 27.12.2009
Сообщений: 106
10.04.2011, 18:09 #20
Цитата Сообщение от neske Посмотреть сообщение
ailia, а вы попробуйте передать указатель на двумерный статический массив.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
void print(int* a,int r,int c);
 
int main()
{
int matr[3][3] = {{4,493,2},{38,4993,282},{374,5863,48}};
print(&matr[0][0],3,3);
return 0;
}
 
void print(int* a,int r,int c)
{
for(int i = 0;i < r;i++)
{
for(int j = 0; j < c;j++)
cout << *(a + (i * r ) + j) << "\t";
cout << "\n";
}
}
1
10.04.2011, 18:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2011, 18:09
Привет! Вот еще темы с решениями:

Как передавать в функцию указатели на двумерный массив и как с помощью указателя двигаться по массиву?
Добрый день, уважаемые знатоки С++! Я долгое время работал в С#, но недавно...

Как передать двумерный массив в функцию, которая вызывается в main?
ребят прошу помогите, проблема в том, что у меня есть функция принимающая в...

Как передать в функцию указатель на двумерный массив заранее неизвестного размера?
Ребята, скажите пожалуйста, как реализовать такую идею? Необходимо передать в...

Как разбить массив по 3 елемента и засунуть в другой массив
Здарова форумчане. Помогите, кому не лень решить задачу по программированию на...


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

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

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