Ошибка - C (СИ) (69627)

Формулировка задачи:

list.c: In function ‘listRemove’:
list.c:116:2: warning: format ‘%g’ expects argument of type ‘double’, but argument 2 has type ‘LIST_TYPE’ [-Wformat=]
  printf("Элемент z=%g%+gi удален из списка\n", list->_arr[cur]._data);//
  ^
list.c:116:2: warning: format ‘%g’ expects a matching ‘double’ argument [-Wformat=]
list.c: In function ‘listPrint’:
list.c:147:3: warning: format ‘%g’ expects argument of type ‘double’, but argument 2 has type ‘LIST_TYPE’ [-Wformat=]
   printf("%g%+gi ", list->_arr[cur]._data);
   ^
list.c:147:3: warning: format ‘%g’ expects a matching ‘double’ argument [-Wformat=]
Но
typedef double complex LIST_TYPE;
void listRemove(List *list, const int index)
{
    int prev, cur;
 
    if (listEmpty(list))
    {
        printf("Список пуст\n");
 
        return;
    }
    else if (index < 0 || index >= list->_size)
    {
        printf("Ошибка. Позиция не найдена\n");
 
        return;
    }
 
    if (index == 0)
    {
        cur = list->_first;
        list->_first = list->_arr[list->_first]._next;
    }
    else
    {
        prev = findPrev(list, index);
        cur = list->_arr[prev]._next;
        list->_arr[prev]._next = list->_arr[cur]._next;
    }
 
    printf("Элемент z=%g%+gi удален из списка\n", list->_arr[cur]._data);//
 
    list->_arr[cur]._data = ' ';
    list->_arr[cur]._next = list->_hole;
    list->_hole = cur;
    list->_size--;
}
и
void listPrint(const List *list)
{
    int i, cur = list->_first;
 
    if (listEmpty(list))
    {
        printf("Список пуст\n");
 
        return;
    }
    
    for (i = 0; i < list->_size; i++)
    {
        printf("%g%+gi ", list->_arr[cur]._data);
 
        cur = list->_arr[cur]._next;
    }
 
    printf("\n");
}

Код к задаче: «Ошибка - C (СИ) (69627)»

textual
printf("%g%+gi ", creal(list->_arr[cur]._data), cimag(list->_arr[cur]._data));

14   голосов, оценка 4.071 из 5


СОХРАНИТЬ ССЫЛКУ