一个细节问题

来源:互联网 发布:男生围巾知乎 编辑:程序博客网 时间:2024/05/21 14:07

由于算法分析与设计作业 我要实现一个完整的堆。

趁着复习了在软件开发环境上学到的只是。

#include<stdio.h>//实现堆的各种操作 加入数据 删除数据  调整堆 获取数据//为方便编程 数组从1开始int a[100];int main(){    char s[3];    printf("请输入相关命令和数据:\n-a   添加数据\n-d   删除堆顶   \n-g   获取堆顶元素\n-p   打印堆\n-0   退出\n");    while(1)    {        fflush(stdin);        scanf("%s",s);        if(s[1]=='a')        {            printf("-a\n");        }        else if(s[1]=='d')        {            printf("-d\n");        }        else if(s[1]=='g')        {            printf("-g\n");        }        else if(s[1]=='p')        {            printf("-p\n");        }        else if(s[1]=='0')        {            break;        }        else        {            printf("命令错误\n");        }    }    printf("操作完成\n");}
这是正确的代码,

一开始我将输入放到了顶部,然后想着通过while(s[1]=='0')来进行判断  里面再次嵌套一个scanf  其实也是可以的,不过要在里面的scanf里面加上  fflush(stdin)

将上次残存队列中的字符清空,防止出现死循环。