run out of here 2022-04-16 21:47 采纳率: 100%
浏览 14
已结题

代码如下:将信息录入后再次回到switch 语句,一直运行default,没法选择其他的选项,不知道是什么问题


#include "stdio.h"
#include "stdlib.h"
#include "assert.h"


typedef struct student {
    char Name[20];
    int StuID;
    int Grade;
    
}stu;

//创建表
struct Node {
    struct student data;
    struct Node* next;
};

//创建表头
struct Node* createList() {
    struct Node* headNode = (struct Node*)malloc(sizeof(struct Node));
    assert(headNode);
    headNode->next = NULL;
    return headNode;
}

//创建结点
struct Node* createNode(struct student data) {
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    assert(newNode);
    newNode->data = data;
    newNode->next = NULL;
    return newNode;
}

//指定节点删除
void deleteAppointNodeByID(struct Node* headNode,int posID) {
    struct Node* posNode = headNode->next;
    struct Node* posFrontNode = headNode;
    if (posNode == NULL) {
        printf("数据为空,无法删除!\n");
        return;
    }
    while (posNode->data.StuID = posID) {
        posFrontNode = posNode;
        posNode = posFrontNode->next;
        if (posNode == NULL) {
            printf("未找到指定位置,无法删除!\n");
            return;
        }
    }
    posFrontNode->next = posNode->next;
    free(posNode);

}

//查找功能
struct Node* searchInfoByData(struct Node* headNode, int posData) {
    struct Node* posNode = headNode;
    while (posNode!=NULL) {
        if (posNode->data.StuID == posData)
            return posNode;
        posNode = posNode->next;
    }
    printf("无法找到结点\n");
    return NULL;
}


//插入结点
void insertNodeByHead(struct Node* headNode, struct student data) {
    struct Node* newNode = createNode(data);
    newNode->next = headNode->next;
    headNode->next = newNode;
}

//打印链表
void printList(struct Node* headNode) {
    struct Node* pMove = headNode->next;
    printf("Name\tStuID\tGrade");
    while (pMove) {
        printf("%s\t%d\t%d",pMove->data.Name,pMove->data.StuID,pMove->data.Grade);
        pMove = pMove->next;
    }
    printf("\n");
}

//建表


//按键交互
void keyDown() {
    struct Node* list = createList();
    struct student data;
    printf("请输入:(0`4)\n");
    switch (getchar()) {
    case '0':
        printf("正常退出!\n");
        system("pause");
        exit(0);
        break;
    case '1':
        printf("录入信息:\n");
        //插入链表
        printf("请输入学生姓名,学号,成绩\n");
        fflush(stdin);
        scanf_s("%s%d%d",data.Name,4,&data.StuID,&data.Grade);
        insertNodeByHead(list,data);
        break;
    case '2':
        printf("浏览信息:\n");
        printList(list);
        break;
    case '3':
        printf("删除信息:\n");
        break;
    case '4':

        printf("查找信息:\n");
        break;
    default:
        printf("输入错误,请重新输入!\n");
        break;
    }
}

//菜单
void menu() {
    printf("----------------------------\n");
    printf("学生信息管理系统\n");
    printf("1.录入信息\n");
    printf("2.浏览信息\n");
    printf("3.删除信息\n");
    printf("4.查找信息\n");
    printf("0.退出系统\n");
    printf("----------------------------\n");
}



int main() {


    while (1) {
        menu();
        keyDown();
        system("pause");
        system("cls");
    }
    system("pause");
    return 0;
}


img

  • 写回答

1条回答 默认 最新

  • 不会长胖的斜杠 后端领域新星创作者 2022-04-16 22:04
    关注

    case 0
    case 1
    不要用引号包括
    望采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月12日
  • 已采纳回答 9月4日
  • 创建了问题 4月16日

悬赏问题

  • ¥500 高有偿提问!求优化设计微信小程序
  • ¥15 matlab在安装时报错 无法找到入口 无法定位程序输入点
  • ¥15 收益高的广告联盟有哪些
  • ¥15 Android Studio webview 的使用问题, 播放器横屏全屏
  • ¥15 删掉jdk后重新下载,Java web所需要的eclipse无法使用
  • ¥15 uniapp正式环境中通过webapi将本地数据推送到设备出现的跨域问题
  • ¥15 xui建立节点,显示错误
  • ¥15 关于#单片机#的问题:开始、复位、十进制的功能可以实现,但是切换八进制的功能无法实现(按下按键也没有效果),把初始状态调成八进制,也是八进制可以实现但是切换到十进制不行(相关搜索:汇编语言|计数器)
  • ¥15 VINS-Mono或Fusion中feature_manager中estimated_depth是特征的深度还是逆深度?
  • ¥15 谷歌浏览器如何备份抖音网页数据