Ошибки с указателями
Выдаёт ошибки: Не совсем понимаю как их исправлять...
main.c:26:9: warning: passing argument 1 of ‘display’ makes pointer from integer without a cast [-Wint-conversion]
display(min);
^~~
main.c:5:6: note: expected ‘int *’ but argument is of type ‘int’
void display(int num[10]);
Код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int i, N, min= 100000000, count = 0, *arr;
void display(int num[10]);
int main (void) /* вывод чисел */
{
printf("Введите кол-во элементов массива: ");
scanf("%d", &N);
arr = (int*)calloc(N, sizeof(int));
if (N>0)
{
printf("Введите элементы массива:\n");
}
for (i = 0; i < N; i++)
{
printf("arr[%d] = ", i);
scanf("%d", &arr[i]);
}
if (N>0)
{
display(min);
printf("Минимальный по модулю элемент массива %d", min);
}
else printf("Минимальных элементов нет.");
return 0;
}
void display(int *num)
{
for (i = 0; i < N; i++)
{
if (abs(arr[i]) < abs(min))
{
min=arr[i];
count++;
}
}
}
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
Функции
void display(int num[10]);
которая ожидает массив из 10 элементов, вы передаете просто число:
display(min);
В этом и заключается ошибка.