2015-12-22 2 views
0

Допустим, у меня есть матрица с x строк и y столбцов и целое число a, и я хочу сделать функцию, которая принимает матрицу и умножает любую строку с целым числом a (я знаю Я могу сделать это просто с циклом for). Как написать начало функции? function(int a, matrix[x],[y])? (Я использую C)Вставка матрицы и целого числа в функцию

+1

Какой язык вы используете? Без этой детали ваш вопрос слишком широк. –

+0

Ой, я забыл сказать, что я использую C. – user259548

+3

http://stackoverflow.com/questions/9446707/correct-way-of-passing-2-dimensional-array-into-a-функция проверить этот вопрос – CoreMeltdown

ответ

0

Довольно простой способ. Вы можете объявить массив 2d несколькими способами.

void ApplyConstant(int c, int matrix[][col], int row) 
{ 
    for (j = 0; j < col; j++) 
    { 
     // access by matrix[row][j] 
    } 
} 
+0

Я сказал, что знаю, как это сделать в цикле. Я просто хотел знать, как вставить их в функцию – user259548

1

Создание матрицы (2D массива) в C не так просто, как в C#, Java и т.д. Вы должны создать массив массивов - с помощью указателей. Позвольте мне показать вам функцию:

Функция fill2D() принимает 3 аргумента - указатель на матрицу, количество строк, количество столбцов.

декларация функции fill2D() в файле functions.h:

extern void fill2D(float **pole, int r, int c);` 

определения функции fill2D() в файле functions.c:

void fill2D(float **pole, int r, int c) { 
int i, j; 

for (i = 0; i < r; i++) { 
    for (j = 0; j < c; j++) { 
     pole[i][j] = 1; 
    } 
} 

И вот код в main.c:

Функция

Определение аргументов для fill2D():

float **p_float_array = NULL; 
int rows = 10; 
int columns = 3; 

Надежда, это полезный ответ :)

0

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

void func(int a, int* matrix, int len); 
int main(void) { 
    int matrix[4][4] = {{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4}}; 
    func(3,matrix[4],4); 
    return 0; 
} 

void func(int a, int* matrix, int len) { 
    //your loop code here... 
} 

Надеюсь это вам помогло.

Смежные вопросы