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

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

Восстановить пароль Регистрация
 
kostya.you
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 27
29.03.2011, 00:52     Динамический массив #1
Помогите найти ошибку.
При компилировании выдает следущее: could not find a match for myn(int * *,int, int)


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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# include<iostream.h>
# include<conio.h>
const int n=4, m=4;
void inarray(int*[],int,int);
void myn(int[n][m],int,int);
void outarray(int[n][m],int,int);
void inarray(float*[],int,int);
void myn(float[n][m],int,int);
void outarray(float[n][m],int,int);
void main()
{
clrscr();
int n, m;
int**a=new int*[m];
float**d=new float*[m];
cout<<"vvedit kilkist stolbcov:\n";
cin>>n;
cout<<"vvedit kilkist strok:\n";
cin>>m;
cout<<"vvedit masiv "<<n<<"*"<<m<<endl;
inarray (a,m,n);
myn(a,m,n);
cout<<"masiv1:"<<endl;
outarray(a,m,n);
cout<<"vvedit masiv "<<n<<"*"<<m<<endl;
inarray (d,m,n);
myn(d,m,n);
cout<<"masiv2:"<<endl;
outarray(d,m,n);
getch();
}
void inarray(int*x[],int m,int n)
{
for(int i=0; i<n; i++)
   {
   x[i]=new int[m];
   for(int j=0; j<m; j++)
      cin>>x[i][j];
   }
}
void myn(int x[n][m],int m, int n)
{
int t[n];
for(int i=0; i<n; i++)
   {
   t[i]=x[i][1];
   x[i][1]=x[i][3];
   x[i][3]=t[i];
   }
}
void outarray(int x[n][m], int m, int n)
{
for(int i=0; i<n; i++)
   {
   for(int j=0; j<m; j++)
      cout<<x[i][j]<<" ";
   cout<<endl;
   }
}
void inarray(float x[n][m])
{
for(int i=0; i<n; i++)
   for(int j=0; j<m; j++)
      cin>>x[i][j];
}
void myn(float x[n][m])
{
float t[n];
for(int i=0; i<n; i++)
   {
   t[i]=x[i][1];
   x[i][1]=x[i][3];
   x[i][3]=t[i];
   }
}
void outarray(float x[n][m])
{
for(int i=0; i<n; i++)
   {
   for(int j=0; j<m; j++)
      cout<<x[i][j]<<" ";
   cout<<endl;
   }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2011, 00:52     Динамический массив
Посмотрите здесь:

Массив: передать динамический массив в функцию и записать в каждый элемент строку из файла C++
динамический массив (Целое число разложить на массив простых множителей) C++
Создать динамический массив (Если чётных чисел больше, то массив должен быть укорочен на 2 элемента) C++
Написать функцию принимающую массив и возвращающую указатель на динамический массив C++
C++ Переделать динамический массив на статический массив
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
29.03.2011, 04:57     Динамический массив #2
Ошибка в том, что функция ждет статический двумерный массив, а получает указатель на указатель, что совсем не одно и тоже.
kostya.you
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 27
29.03.2011, 10:01  [ТС]     Динамический массив #3
спасибо, но если можешь объясни где что исправить, чтобы этого не возникало.
Байт
 Аватар для Байт
13964 / 8795 / 1223
Регистрация: 24.12.2010
Сообщений: 15,930
29.03.2011, 11:08     Динамический массив #4
kostya.you, Объяви
C++
1
 int a[n][m]; float d[n][m];
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
29.03.2011, 12:36     Динамический массив #5
или же прототип функции изменить на
C++
1
2
void myn(int**,int,int);
void myn(float**,int,int);
kostya.you
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 27
29.03.2011, 14:12  [ТС]     Динамический массив #6
Щас попробую.

P.S. Borland 3.1, это не влияет???
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
29.03.2011, 14:19     Динамический массив #7
Цитата Сообщение от kostya.you Посмотреть сообщение
Borland 3.1, это не влияет??
Нет..
kostya.you
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 27
29.03.2011, 14:20  [ТС]     Динамический массив #8
Цитата Сообщение от Байт Посмотреть сообщение
kostya.you, Объяви
C++
1
 int a[n][m]; float d[n][m];
где объявлять если так делать?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
29.03.2011, 14:23     Динамический массив #9
Цитата Сообщение от kostya.you Посмотреть сообщение
int**a=new int*[m];
float**d=new float*[m];
Вместо этого. Т.е. определись конкретно или работать со статичекскими массивами или динамическими.
kostya.you
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 27
29.03.2011, 14:24  [ТС]     Динамический массив #10
Цитата Сообщение от kazak Посмотреть сообщение
или же прототип функции изменить на
C++
1
2
void myn(int**,int,int);
void myn(float**,int,int);
сделал так, все равно есть ошибки. задание немного другое. вот просто рабочий массив в виде функции с перегрузкой. нужно переделать его в динамический.



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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include<iostream.h>
#include<conio.h>
const int n=4,m=4;
void InArray(int [n][m]);
void Sum(int [n][m]);
void Change(int [n][m]);
void PrintArray(int [n][m]);
void InArray(float [n][m]);
void Sum(float [n][m]);
void Change(float [n][m]);
void PrintArray(float [n][m]);
void main()
{
clrscr();
int A[n][m];
float D[n][m];
cout<<"vvedit masiv "<<n<<"*"<<m<<endl;
InArray(A);
Sum (A);
Change (A);
cout<<"masiv1:"<<endl;
PrintArray (A);
cout<<"vvedit masiv "<<n<<"*"<<m<<endl;
InArray(D);
Sum (D);
Change (D);
cout<<"masiv2:"<<endl;
PrintArray (D);
getch();
}
 
void InArray(int X[n][m])
 
{
for(int i=0; i<n; i++)
   for(int j=0; j<m; j++)
 
      cin>>X[i][j];
 
cout<<endl;
 
}
 
void Sum(int X[n][m])
{
int S=0;
for(int i=0; i<n; i++)
   for(int j=0; j<m; j++)
if(j%2==0)
S=S+X[i][j];
}
 
void Change(int X[n][m])
{
int S;
for(int i=0; i<n; i++)
   for(int j=0; j<m; j++)
 
if (i==j)
X[i][j]=S;
}
 
void PrintArray (int X[n][m])
{
for(int i=0; i<n; i++)
   {
   for(int j=0; j<m; j++)
      cout<<X[i][j]<<" ";
   cout<<endl;
   }
}
void InArray(float X[n][m])
 
{
for(int i=0; i<n; i++)
   for(int j=0; j<m; j++)
 
      cin>>X[i][j];
 
cout<<endl;
 
}
 
void Sum(float X[n][m])
{
float S=0;
for(int i=0; i<n; i++)
   for(int j=0; j<m; j++)
if(j%2==0)
S=S+X[i][j];
}
 
void Change(float X[n][m])
{
float S;
for(int i=0; i<n; i++)
   for(int j=0; j<m; j++)
 
if (i==j)
X[i][j]=S;
}
 
void PrintArray (float X[n][m])
{
for(int i=0; i<n; i++)
   {
   for(int j=0; j<m; j++)
      cout<<X[i][j]<<" ";
   cout<<endl;
   }
}
Добавлено через 57 секунд
Цитата Сообщение от kazak Посмотреть сообщение
Вместо этого. Т.е. определись конкретно или работать со статичекскими массивами или динамическими.
нет нет нет. нужен динамический массив
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2011, 14:32     Динамический массив
Еще ссылки по теме:

Двумерный массив (поменять статический массив на динамический) C++
Заполнить динамический массив из файла и записать массив обратно в файл C++
C++ Массив и память. Как создать динамический массив?

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

Или воспользуйтесь поиском по форуму:
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
29.03.2011, 14:32     Динамический массив #11
На правильность работы не проверял, исправил, чтоб компилился
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# include<iostream.h>
# include<conio.h>
const int n=4, m=4;
void inarray(int*[],int,int);
void myn(int**,int,int);
void outarray(int**,int,int);
void inarray(float*[],int,int);
void myn(float**,int,int);
void outarray(float**,int,int);
void main()
{
clrscr();
int n, m;
int**a=new int*[m];
float**d=new float*[m];
cout<<"vvedit kilkist stolbcov:\n";
cin>>n;
cout<<"vvedit kilkist strok:\n";
cin>>m;
cout<<"vvedit masiv "<<n<<"*"<<m<<endl;
inarray (a,m,n);
myn(a,m,n);
cout<<"masiv1:"<<endl;
outarray(a,m,n);
cout<<"vvedit masiv "<<n<<"*"<<m<<endl;
inarray (d,m,n);
myn(d,m,n);
cout<<"masiv2:"<<endl;
outarray(d,m,n);
getch();
}
void inarray(int*x[],int m,int n)
{
for(int i=0; i<n; i++)
   {
   x[i]=new int[m];
   for(int j=0; j<m; j++)
      cin>>x[i][j];
   }
}
void myn(int **x,int m, int n)
{
int *t = new int [n];
for(int i=0; i<n; i++)
   {
   t[i]=x[i][1];
   x[i][1]=x[i][3];
   x[i][3]=t[i];
   }
}
void outarray(int **x, int m, int n)
{
for(int i=0; i<n; i++)
   {
   for(int j=0; j<m; j++)
      cout<<x[i][j]<<" ";
   cout<<endl;
   }
}
void inarray(float x[n][m])
{
for(int i=0; i<n; i++)
   for(int j=0; j<m; j++)
      cin>>x[i][j];
}
void myn(float **x, int m, int n)
{
float *t = new float [n];
for(int i=0; i<n; i++)
   {
   t[i]=x[i][1];
   x[i][1]=x[i][3];
   x[i][3]=t[i];
   }
}
void outarray(float **x, int m, int n)
{
for(int i=0; i<n; i++)
   {
   for(int j=0; j<m; j++)
      cout<<x[i][j]<<" ";
   cout<<endl;
   }
}
Yandex
Объявления
29.03.2011, 14:32     Динамический массив
Ответ Создать тему
Опции темы

Текущее время: 23:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru