Неразрешенный внешний символ - C (СИ)
Формулировка задачи:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> struct listNode { char data; struct listNode *nextPtr; }; typedef struct listNode LISTNODE; typedef LISTNODE *LISTNODEPTR; void insert(LISTNODEPTR *sPtr, char value); char delete(LISTNODEPTR *sPtr, char value); int isEmpty(LISTNODEPTR *sPtr); void printList(LISTNODEPTR currentPtr); void instructions(void); main() { LISTNODEPTR startPtr = NULL; int choice; char item; instructions(); pritnf("? "); scanf("%d", &choice); while (choice != 3) { switch (choice) { case 1: printf("Enter a character: "); scanf("\n%c", &item); insert(&startPtr, item); printList(startPtr); break; case 2: if (!isEmpty(startPtr)) { printf("Enter character to be deleted: "); scanf("\n%c", &item); if (delete(&startPtr, item)) { printf("%c deleted", item); printList(startPtr); } else{ printf("%c not found.\n\n", item); } } else { printf("List is empty\n\n"); } break; default: printf("Invalid choice.\n\n"); instructions(); break; } printf("? "); scanf("%d", &choice); } printf("End of run.\n"); return 0; } // Print the menu void instructions(void) { printf("Enter your choice: \n" "1 - to insert an element into the list.\n" "2 - to delite an element from the list.\n" "3 - to end.\n"); } //Вставка нового значения в упорядоченный список void insert(LISTNODEPTR *sPtr, char value) { LISTNODEPTR newPtr, previousPtr, currentPtr; newPtr = malloc(sizeof(LISTNODE)); if (newPtr != NULL) { newPtr->data = value; newPtr->nextPtr = NULL; previousPtr = NULL; currentPtr = *sPtr; while (currentPtr != NULL && value > currentPtr->data) { previousPtr = currentPtr; currentPtr = currentPtr->nextPtr; } if (previousPtr == NULL) { newPtr->nextPtr = *sPtr; *sPtr = newPtr; } else { previousPtr->nextPtr; newPtr->nextPtr = currentPtr; } } else { printf("%c not inserted. No memory available.\n", value); } } //Удаление элемента из списка char delete(LISTNODEPTR *sPtr, char value) { LISTNODEPTR previousPtr, currentPtr, tempPtr; if (value == (*sPtr)->data) { tempPtr = *sPtr; *sPtr = (*sPtr)->nextPtr; free(tempPtr); return value; } else { previousPtr = *sPtr; currentPtr = (*sPtr)->nextPtr; while (currentPtr != NULL && currentPtr->data != value) { previousPtr = currentPtr; currentPtr = currentPtr->nextPtr; } if (currentPtr != NULL) { tempPtr = currentPtr; previousPtr->nextPtr = currentPtr->nextPtr; free(tempPtr); return value; } } return '\0'; } //if the list is empty , the function will return 1 , else - 0 int isEmpty(LISTNODEPTR *sPtr) { return sPtr = NULL; } //print the list void printList(LISTNODEPTR currentPtr) { if (currentPtr == NULL){ printf("List is empty.\n\n"); } else { printf("The list is: \n"); while (currentPtr != NULL) { printf("%c->", currentPtr->data); currentPtr = currentPtr->nextPtr; } printf("NULL\n\n"); } }
Решение задачи: «Неразрешенный внешний символ»
textual
Листинг программы
pritnf("? ");
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д