In December does not introduce items of type float . Maybe someone will find what the problem is?
#include<stdio.h> #include<stdlib.h> #include <locale> struct Node { float data; struct Node* next; struct Node* prev; struct Node* temp2; }; struct Node* head; struct Node* GetNewNode(float x) { struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); newNode->data = x; newNode->prev = NULL; newNode->next = NULL; return newNode; } void InsertAtHead(float x) { struct Node* newNode = GetNewNode(x); if (head == NULL) { head = newNode; return; } head->prev = newNode; newNode->next = head; head = newNode; } void DeleteAtHead() { struct Node* temp = head; if (head != NULL) { head = head->next; free(temp); } } void DeleteAtTail() { struct Node* temp = head; struct Node* temp2 = head; while (temp->next != NULL) { temp = temp->next; } temp2 = temp->prev; temp2->next = NULL; free(temp); } void InsertAtTail(float x) { struct Node* temp = head; struct Node* newNode = GetNewNode(x); if (head == NULL) { head = newNode; return; } while (temp->next != NULL) temp = temp->next; temp->next = newNode; newNode->prev = temp; } void Print() { struct Node* temp = head; printf("Forward: "); while (temp != NULL) { printf("%f ", temp->data); temp = temp->next; } printf("\n"); } int main() { setlocale(LC_ALL, "rus"); printf("Введите размер дека: "); int razmer, choice; scanf_s("%d", &razmer); int kol = 0; float datain; while (true) { printf("Menu:\n"); printf("1) Вставить элемент сверху.\n"); printf("2) Вставить элемент снизу.\n"); printf("3) Удалить элемент сверху.\n"); printf("4) Удалить элемент снизу.\n"); printf("5) Вывод.\n"); printf("6) Выход.\n"); scanf_s("%d", &choice); fflush(stdin); switch (choice) { case 1: if (kol < razmer) { kol++; scanf_s("%f", &datain); InsertAtHead(datain); } else { printf("Размер дека превышен. Будет удалён первый элемент!\n"); scanf_s("%f", &datain); DeleteAtHead(); InsertAtHead(datain); } break; case 2: if (kol < razmer) { scanf_s("%f", &datain); InsertAtTail(datain); } else { printf("Размер дека превышен. Будет удалён первый элемент!\n"); scanf_s("%f", &datain); DeleteAtHead(); InsertAtTail(datain); } break; case 3: DeleteAtHead(); break; case 4: DeleteAtTail(); break; case 5: Print(); break; case 6: return 0; break; } } }
., and,you have a Russian locale - Sublihimfflushwill not save you - go in a loop (well, it’s really irrelevant to the question :)) - Sublihim