Передача в функцию - C (СИ)

Узнай цену своей работы

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

Правильно ли я передаю arg в функцию listInsert? Нет возможности проверить. Ниже структура и фунция встаки аргумента.
Листинг программы
  1. double complex arg;
  2. scanf("%d", &re);
  3. scanf("%d", &im);
  4. arg=re+im*I;
  5. listInsert(&list, pos - 1, arg);
Функции
Листинг программы
  1. void listInsert(List *list, const int index, const LIST_TYPE value)
  2. {
  3. int prev, nextHole;
  4. if (list->_size == list->_capacity)
  5. {
  6. printf("Ошибка. Список полон\n");
  7. return;
  8. }
  9. if (list->_size)
  10. {
  11. if (index < 0 || index > list->_size)
  12. {
  13. printf("Ошибка. Позиция не найдена\n");
  14. return;
  15. }
  16. }
  17. else if (index != 0)
  18. {
  19. printf("Ошибка. Позиция не найдена\n");
  20. return;
  21. }
  22. nextHole = list->_arr[list->_hole]._next;
  23. if (index == 0)
  24. {
  25. list->_arr[list->_hole]._next = list->_first;
  26. list->_first = list->_hole;
  27. }
  28. else
  29. {
  30. prev = findPrev(list, index);
  31. list->_arr[list->_hole]._next = list->_arr[prev]._next;
  32. list->_arr[prev]._next = list->_hole;
  33. }
  34. list->_arr[list->_hole]._data = value;
  35. list->_hole = nextHole;
  36. list->_size++;
  37. printf("Элемент %g%+gi вставлен в список\n", creal(arg), cimag(arg));
  38.  
  39. int findPrev(List *list, const int index)
  40. {
  41. int i, prev = list->_first;
  42. if (index == 0)
  43. return END;
  44. for (i = 0; i < index - 1; i++)
  45. prev = list->_arr[prev]._next;
  46. return prev;
  47. }
  48. }
Структура
Листинг программы
  1. typedef double complex LIST_TYPE;
  2. typedef struct _Item
  3. {
  4. LIST_TYPE _data;
  5. int _next;
  6. int _prev;
  7. } Item;
  8. typedef struct _List
  9. {
  10. Item *_arr;
  11. int _first;
  12. int _hole;
  13. int _capacity;
  14. int _size;
  15. } List;

Решение задачи: «Передача в функцию»

textual
Листинг программы
  1. scanf("%d", &re);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы