Что не так с определением середины? - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д