地方网站方案,制作网站建设规划书,网站建设 五金,广告代理公司排名目录
1.双向循环链表的声明与定义#xff1a;
2. 创建链表并对节点中的数据赋初值
3. 插入节点并链接
4.中英翻译
5. 小游戏的实现 6.菜单的实现
7. 释放内存
8.在主函数中用刚才定义的函数实现各种代码
输入样例#xff1a; 实现方法#xff1a;双向循环链表来实…目录
1.双向循环链表的声明与定义
2. 创建链表并对节点中的数据赋初值
3. 插入节点并链接
4.中英翻译
5. 小游戏的实现 6.菜单的实现
7. 释放内存
8.在主函数中用刚才定义的函数实现各种代码
输入样例 实现方法双向循环链表来实现各个函数来实现各种功能如game函数是实现程序小游戏的代码translate是实现翻译的代码将各个函数的功能在主函数中实现 。
OK让我们开始实现吧~ 1.双向循环链表的声明与定义
//双向链表的声明
typedef struct Node
{char data[20];char chinese[20];char english[20];struct Node* prev;struct Node* next;
} Node;其中chinese存储中文信息english存储英文信息而data存储字节信息
2. 创建链表并对节点中的数据赋初值
//创建链表并对节点中的数据初始值
Node* createNode(char* chinese, char* english,char* data)
{Node* newNode (Node*)malloc(sizeof(Node));strcpy(newNode-data, data);strcpy(newNode-chinese, chinese);strcpy(newNode-english, english);newNode-prev NULL;newNode-next NULL;return newNode;
} 3. 插入节点并链接
//插入节点并链接
void insertNode(Node** head, char* chinese, char* english,char* data)
{Node* newNode createNode(chinese, english,data);if (*head NULL)//如果节点为空就将新创建的节点赋值给*head{*head newNode;(*head)-prev *head;(*head)-next *head;}else//否则就执行插入链接操作{Node* lastNode (*head)-prev; newNode-next *head;newNode-prev lastNode;(*head)-prev newNode;lastNode-next newNode;}
}4.中英翻译
//中英翻译
void translate(Node* head, char* keyword)
{Node* current head;do {if (strcmp(current-chinese, keyword) 0)//运用strcmp进行比较如果相同就打印对应的翻译{printf(%s\n, current-english);return;}if (strcmp(current-english, keyword) 0){printf(%s\n, current-chinese);return;}current current-next;//如果没找到就持续寻找下一个} while (current ! head);//注意结束标志不是NULLprintf(Translation not found.\n);
} 5. 小游戏的实现
//小游戏的实现
void game(Node* head)
{char data[20];char string[20];Node* current head;srand(time(NULL));int k rand() % 11;//设置一个随机数for (int i 0; i k; i){current current-next;//通过随机数来随机指定当前链表的位置}printf(请输入当前英文关键字的翻译%s-:, current-english);scanf(%s, string);//通过随机数所指定链表的值与当前输入的值进行匹配if (strcmp(current-chinese,string) 0){printf(你能输出它的字节大小吗没有就写没有-:);scanf(%s, data);//当上一个匹配没问题就进行字节的匹配if (strcmp(current-data, data) 0){printf(你真是太厉害了\n);printf(恭喜你挑战成功\n);exit(0);}else if (strcmp(current-data, data) ! 0){int count 2;//挑战失败那再给挑战者两次机会printf(很遗憾挑战失败看你表现优异再给你两次机会吧\n);while (count){printf(你能输出它的字节大小吗没有就写没有-:);scanf(%s, data);if (strcmp(current-data, data) 0){printf(你真是太厉害了\n);printf(恭喜你挑战成功\n);exit(0);}else printf(挑战失败\n);count--;}printf(小菜鸡再练练再来挑战吧\n);exit(0);}}
} 6.菜单的实现
void menu1()
{printf(---------------------------------------------------\n);printf(-------------c语言关键字翻译机-------------------\n);printf(-------------输入bye退出程序---------------------\n);printf(-------------强化训练输入play--------------------\n);printf(---------------------------------------------------\n);
} 7. 释放内存
void freeList(Node* head)
{if (head NULL) {return;}Node* current head;Node* next;do {next current-next;free(current);current next;} while (current ! head);
}
8.在主函数中用刚才定义的函数实现各种代码
int main()
{Node* head NULL;insertNode(head, 浮点型, float,4);//要匹配的数据的插入insertNode(head, 基本整型, int,4);insertNode(head, 长整型,longlong,8);insertNode(head, 结构体类型, struct,没有);insertNode(head, 联合体类型, union,没有);insertNode(head, 否则, else,没有);insertNode(head, 双精度浮点型, double,8);insertNode(head, 如果, if,没有);insertNode(head, 开关, switch,没有);insertNode(head, 循环, while,没有);char keyword[20];menu1();while (1) {printf(请输入中文的名词或英文的单词输入 bye 退出-);scanf(%s, keyword);if (strcmp(keyword, bye) 0) {printf(退出程序\n);break; }if (strcmp(keyword, play) 0){game(head);}translate(head, keyword);}freeList(head);return 0;
}
输入样例
样例1 样例2 博客到这里也是结束了喜欢的小伙伴可以点赞加关注支持下博主这对我真的很重要~~