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

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

Войти
Регистрация
Восстановить пароль
 
kostya.you
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 27
#1

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

29.03.2011, 00:52. Просмотров 636. Ответов 10
Метки нет (Все метки)

Помогите найти ошибку.
При компилировании выдает следущее: 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;
   }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2011, 00:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Динамический массив (C++):

Можно ли в классе создавать массив переменной длинны. Например динамический массив? - C++
Динамические массивы привлекают больше. :)

динамический массив (Целое число разложить на массив простых множителей) - C++
Доброго времени суток всем. Целое число необходимо разложить на массив простых множителей. Столкнулся с проблемой, мне нужно, чтобы...

Написать функцию принимающую массив и возвращающую указатель на динамический массив - C++
Написать функцию принимающую массив и возвращающую указатель на динамический массив содержащий первые n нaибольших чисел. Как сделать...

Заполнить динамический массив из файла и записать массив обратно в файл - C++
Подскажите пожалуйста функцию которая будет заполнять Динамический массив из файла и обратную которая этот массив запишет в файл=)

Массив: передать динамический массив в функцию и записать в каждый элемент строку из файла - C++
задача: передать динамический массив в функцию, и записать в каждый элемент строку из файла. количество строк известно вот что у меня...

Как преобразовать массив в динамический? Массив вычисляет сумму элементов каждой диагонали матрицы - C++
Ошибка : Вызвано исключение по адресу 0x00BB2F4F в Проект6.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFDFDFE05. #...

10
kazak
3057 / 2378 / 160
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
29.03.2011, 04:57 #2
Ошибка в том, что функция ждет статический двумерный массив, а получает указатель на указатель, что совсем не одно и тоже.
1
kostya.you
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 27
29.03.2011, 10:01  [ТС] #3
спасибо, но если можешь объясни где что исправить, чтобы этого не возникало.
0
Байт
Эксперт C
17658 / 11696 / 1863
Регистрация: 24.12.2010
Сообщений: 23,325
29.03.2011, 11:08 #4
kostya.you, Объяви
C++
1
 int a[n][m]; float d[n][m];
1
kazak
3057 / 2378 / 160
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
29.03.2011, 12:36 #5
или же прототип функции изменить на
C++
1
2
void myn(int**,int,int);
void myn(float**,int,int);
1
kostya.you
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 27
29.03.2011, 14:12  [ТС] #6
Щас попробую.

P.S. Borland 3.1, это не влияет???
0
kazak
3057 / 2378 / 160
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
29.03.2011, 14:19 #7
Цитата Сообщение от kostya.you Посмотреть сообщение
Borland 3.1, это не влияет??
Нет..
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];
где объявлять если так делать?
0
kazak
3057 / 2378 / 160
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
29.03.2011, 14:23 #9
Цитата Сообщение от kostya.you Посмотреть сообщение
int**a=new int*[m];
float**d=new float*[m];
Вместо этого. Т.е. определись конкретно или работать со статичекскими массивами или динамическими.
0
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 Посмотреть сообщение
Вместо этого. Т.е. определись конкретно или работать со статичекскими массивами или динамическими.
нет нет нет. нужен динамический массив
0
kazak
3057 / 2378 / 160
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
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;
   }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2011, 14:32
Привет! Вот еще темы с ответами:

Создать динамический массив (Если чётных чисел больше, то массив должен быть укорочен на 2 элемента) - C++
Создать динамический массив из 8 случайных целых чисел из отрезка и вывести его на экран . Если в массиве чётных чисел оказалось...

Двумерный массив (поменять статический массив на динамический) - C++
Нужно поменять статический массив на динамический с выделением памяти #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; ...

Массив и память. Как создать динамический массив? - C++
не могу исправить ошибки. И нужен динамический массив я что-то попробовала для его создания но ничего не вышло #include &quot;stdafx.h&quot; ...

Переделать динамический массив на статический массив - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { int dim, counter_1 = 1, counter_2 =...


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

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

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