#include <stdio.h>
#include <stdlib.h>
#define n 3 //Столбцы
#define m 4 //Строки
int main()
{
//Функция, которая находит минимальные элементы массива на четных сроках и размещает их в вектор
int array[m][n] = {{3,9,2}, // +
{3,2,1},
{5,1,2}, // +
{4,2,6}};
int minArr[m/2]; // Вектор для вывода размера m/2
int search_min_elements_of_array(int array[][3], int *minArr);
{
int k = 0; // Переменная, которая увеличивается на четных строках
for (int j = 0; j < m; j++) // Перебор строк
if (j % 2 == 0) { // Если строка четная
int min = array[j][0];
for (int i = 1; i < m - 1; i++) { // Перебор элементов строки
if (min > array[j][i])
min = array[j][i];
minArr[k] = min;
}
k++;
};
return *minArr; // Как вернуть массив?
} // End of function
int minArray[m/2] = search_min_element_of_array(int array[][3], int *minArr);
for (int k = 0; k < m/2; k++)
printf(" %i", minArray[k]);
}
int * minArr
внутри search_min_elements_of_array
отражаются на массиве int minArr[m/2]
, и отдельно что-то возвращать не надо.search_min_elements_of_array
за пределы (перед) main
, ну и вызов у вас неверный:// int minArray[m/2] = search_min_element_of_array(int array[][3], int *minArr); // больше похоже на объявление функции
search_min_element_of_array(array, minArr);
#include <stdio.h>
int *func(int a, int b, int *p)
{
p[0] = a;
p[1] = b;
return p;
}
int main(void)
{
int arr[4], *p;
p = func(1, 2, arr);
printf("%d %d\n", p[0], p[1]);
p = func(3, 4, arr + 2);
printf("%d %d\n", p[0], p[1]);
p = arr;
printf("%d %d %d %d\n", p[0], p[1], p[2], p[3]);
return 0;
}
[guest@localhost c]$ .ansi t.c -o t
[guest@localhost c]$ ./t
1 2
3 4
1 2 3 4
[guest@localhost c]$