Что не так с определением середины? - C (СИ)
Формулировка задачи:
Я пытаюсь разбить список на два, ну вы все можете увидеть сами:
Вот только выводит у меня в случае нечетного кол-ва элементов первый список на 1 короче второго, а надо бы наоборот.
Что не так здесь записано? Даже на бумажке проверил, что я упустил?
Вывод списков у меня такого вида:
Структура:
Переменные:
head1 = head; p = head1; i=1; while (i<(n/2)) //4/2 == 2; 3/2 == 1,5 = 2; { p = p->next; i++; } head2 = p->next; p->next = NULL;
p = head1; while (p!=NULL) //такое произойдет, когда уже выведется последний элемент, и указатель упрется в грань { printf("->%.2f \n",p->content); p = p->next; } printf("\n");
typedef struct list { float content; struct list *next; } list;
int n; int i; short size_list = sizeof(list); list *head; list *head1; list *head2;
Решение задачи: «Что не так с определением середины?»
textual
Листинг программы
int n=3/2;
Объяснение кода листинга программы
- В первой строке кода объявлена переменная
n
и ей присваивается значение 3/2. - Значение переменной
n
равно 1.5.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д