как распечатать все элементы динамического массива? и найдите минимальное значение

#c

Вопрос:

У меня есть динамический массив int в структуре, и я хочу распечатать() все элементы в этом массиве.

а также получить минимальное значение, так как я не знаю размер массива, я не знаю, как это сделать.

Вы можете мне помочь?

Комментарии:

1. Пожалуйста, отправьте код, который у вас есть, чтобы мы могли помочь

2. поскольку я не знаю размер массива — вы должны это знать. Вы распределили его по размеру сертификата, верно?

Ответ №1:

поскольку я не знаю размер массива, я не знаю, как это сделать.

Вы должны знать размер вашего массива. Ваша структура должна содержать размер этого массива:

 struct your_struct {
    // fields...
    
    int *array; // Your dynamic array
    int size;   // Your array size
};
 

Чтобы напечатать любой массив (а не только динамически выделенные массивы), вы можете определить функцию, которая делает это за вас:

 void print_array(int *array, int size, const char *sep)
{
    int i;
    for (i = 0; i < size; i  )
        printf("%d%s", array[i], sep);
}
 

sep позволяет указать, как разделять элементы массива. Это может быть пробел , тире - , кома , , бар | и т. Д.

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

 // Assuming size > 0
int array_min(int *array, int size)
{
    int min = array[0];
    int i;
    for (i = 1; i < size; i  )
        if (min > array[i])
            min = array[i];

    return min;
}