Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Массивы+функция (http://forum.oszone.net/showthread.php?t=171941)

JamesB 01-04-2010 21:19 1382762

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

Выбивает ошибку 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 01-04-2010 22:16 1382796

Код:

#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.

Время: 09:47.
© OSzone.net 2001-