C/C++ - Массивы+функция

Ответить
Аватара пользователя
JamesB

C/C++ - Массивы+функция

Сообщение JamesB »

Помогите пожалуйста! Только начал программировать и вот перешел к разделу Массивы. Создал функцию, которая считывала б массив, но не тут-то было. Смотрите и хелп ми!!!



Выбивает ошибку 1>e:\c++\matrix\matrix\matrix.cpp(3) : error C2087: abstract declarator: отсутствует индекс в третей строке



Код: Выделить всё

#include <iostream>
using namespace std;
void Enter(int[][], int, int); 
const int a=3;    
int main()  
{  
int matr[a][a];
int i,j;
Enter(matr[][], a, a); 
cout << "Elements of main diagonal" << endl;  		
for (i=0; i<a; i++)  		
{  
for (j=0; j<a; j++)  
{  if (i==j)
	cout << "Element #" << i+1 << "," << j+1 << ":" << matr[i][j] << endl;  		
} 
} 
return 0;  } 
void Enter (int matrix[][], int num1, int num2)
{for (num1=0; num1<a; num1++)  	
{for (num2=0; num2<a; num2++)  
{cout << "Enter element " << num1+1 << "," << num2+1 << endl;
cin >> matrix[num1][num2]; 
} 
}
}
Аватара пользователя
BlackEric

Re: C/C++ - Массивы+функция

Сообщение BlackEric »

Код:

Код: Выделить всё

#include <iostream>
using namespace std;
void Enter(int **matrix, int, int); 
const int a=3;    
int main()  
{  
	int* matr[a][a];
	int i,j;
	Enter(&matr[0][0], a, a); 
	cout << "Elements of main diagonal" << endl;  		
	for (i=0; i<a; i++)  		
	{  
		for (j=0; j<a; j++)  
		{  if (i==j)
		cout << "Element #" << i+1 << "," << j+1 << ":" << matr[i][j] << endl;  		
		} 
	} 
	cin >> i;
	return 0;
} 
void Enter (int** matrix, int num1, int num2)
{
	for (num1=0; num1<a; num1++)  	
	{
		int *p = (int *)matrix;
		for (num2=0; num2<a; num2++)  
		{
			cout << "Enter element " << num1 << "," << num2 << endl;
//			int b = ;
    		cin >> p[a*num1+num2]; 
		} 
	}
}

только по нормальному в функцию нужно передавать размеры массива, переменные счетчика объявлять непосредственно в функции.
Ответить

Вернуться в «Программирование и базы данных»