Массивы+функция
Помогите пожалуйста! Только начал программировать и вот перешел к разделу Массивы. Создал функцию, которая считывала б массив, но не тут-то было. Смотрите и хелп ми!!!
Выбивает ошибку 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];
}
}
}
|
Код:
#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];
}
}
}
только по нормальному в функцию нужно передавать размеры массива, переменные счетчика объявлять непосредственно в функции.
|
Время: 09:47.
© OSzone.net 2001-