Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 27
1

Динамический массив

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

Author24 — интернет-сервис помощи студентам
Помогите найти ошибку.
При компилировании выдает следущее: 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2011, 00:52
Ответы с готовыми решениями:

Динамический массив при наследовании, элементами которого являются объекты класса наследника динамический массив
Попробовал создать динамический массив, у которого элементы - объекты класса динамический массив,...

Динамический массив ,элементами которого являются объекты класса динамический массив
Доброго времени суток, захотел создать динамический массив ,элементами которого являются объекты...

Создать динамический класс Book, содержащий динамический массив Authors
Мне нужно написать программу,а я не знаю как ее написать. Знаю, тут люди за кого-то не делают,...

Создать динамический класс Book, содержащей динамический массив Authors
всем привет. может кто-то набросать код для такой вот задачи: Создать динамический класс Book,...

10
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
29.03.2011, 04:57 2
Ошибка в том, что функция ждет статический двумерный массив, а получает указатель на указатель, что совсем не одно и тоже.
1
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 27
29.03.2011, 10:01  [ТС] 3
спасибо, но если можешь объясни где что исправить, чтобы этого не возникало.
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
29.03.2011, 11:08 4
kostya.you, Объяви
C++
1
 int a[n][m]; float d[n][m];
1
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
29.03.2011, 12:36 5
или же прототип функции изменить на
C++
1
2
void myn(int**,int,int);
void myn(float**,int,int);
1
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 27
29.03.2011, 14:12  [ТС] 6
Щас попробую.

P.S. Borland 3.1, это не влияет???
0
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
29.03.2011, 14:19 7
Цитата Сообщение от kostya.you Посмотреть сообщение
Borland 3.1, это не влияет??
Нет..
1
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
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
29.03.2011, 14:23 9
Цитата Сообщение от kostya.you Посмотреть сообщение
int**a=new int*[m];
float**d=new float*[m];
Вместо этого. Т.е. определись конкретно или работать со статичекскими массивами или динамическими.
0
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
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
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
29.03.2011, 14:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2011, 14:32
Помогаю со студенческими работами здесь

Скопировать динамический массив в другой массив только с положительными элементами из первого
Пользователь вводит размер массива и сам массив. Программа копирует в другой массив только...

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

Написать функцию принимающую массив и возвращающую указатель на динамический массив
Написать функцию принимающую массив и возвращающую указатель на динамический массив содержащий...

Заполнить динамический массив из файла и записать массив обратно в файл
Подскажите пожалуйста функцию которая будет заполнять Динамический массив из файла и обратную...

Динамический массив: целое число разложить на массив простых множителей
Доброго времени суток всем. Целое число необходимо разложить на массив простых множителей....

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru