鱼C论坛

 找回密码
 立即注册
查看: 1498|回复: 1

[已解决]这段代码在vs里运行不了,在devc++里可以运行是为啥?

[复制链接]
发表于 2022-12-2 15:37:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include<stdio.h>
  3. #include<stdlib.h>

  4. typedef char bitreeElemType;
  5. typedef struct BiNode                                        //定义二叉链表
  6. {
  7.         bitreeElemType data;
  8.         BiNode* lchild, * rchild;
  9. }BiNode,*BiTree;

  10. int leaf = 0;

  11. void pre_create_Bitree(BiTree* T);                        //先序创建二叉链表
  12. void pre_traverse_Bitree(BiTree T);                        //先序遍历
  13. void in_traverse_Bitree(BiTree T);                        //中序遍历
  14. void post_traverse_Bitree(BiTree T);                //后序遍历
  15. int Gethight_Bitree(BiTree T);                                //求高度
  16. int Getleaf_Bitree(BiTree T);                                //求叶子数
  17. void swap_Bitree(BiTree T);                                        //左右孩子交换


  18. void pre_create_Bitree(BiTree* T)
  19. {
  20.         printf("请输入二叉树元素 \n");
  21.         bitreeElemType e;
  22.         scanf("%c", &e);
  23.         if (e == '#')
  24.                 *T = NULL;
  25.         else
  26.         {
  27.                 *T = (BiTree)malloc(sizeof(BiNode));
  28.                 (*T)->data = e;
  29.                 pre_create_Bitree(&((*T)->lchild));
  30.                 pre_create_Bitree(&((*T)->rchild));
  31.         }
  32. }

  33. void pre_traverse_Bitree(BiTree T)
  34. {
  35.         if (!T)
  36.                 return;
  37.         printf("%c", T->data);
  38.         pre_traverse_Bitree(T->lchild);
  39.         pre_traverse_Bitree(T->rchild);
  40. }

  41. void in_traverse_Bitree(BiTree T)
  42. {
  43.         if (!T)
  44.                 return;
  45.         in_traverse_Bitree(T->lchild);
  46.         printf("%c", T->data);
  47.         in_traverse_Bitree(T->rchild);
  48. }

  49. void post_traverse_Bitree(BiTree T)
  50. {
  51.         if (!T)
  52.                 return;
  53.         post_traverse_Bitree(T->lchild);
  54.         post_traverse_Bitree(T->rchild);
  55.         printf("%c", T->data);
  56. }

  57. int Gethight_Bitree(BiTree T)
  58. {
  59.         if (!T)
  60.                 return 0;
  61.         return Gethight_Bitree(T->lchild) > Gethight_Bitree(T->rchild) ? Gethight_Bitree(T->lchild) + 1
  62.                                                                                                                                    : Gethight_Bitree(T->rchild) + 1;
  63. }

  64. int Getleaf_Bitree(BiTree T)
  65. {
  66.         if (!T)
  67.                 return 0;
  68.         if (T->lchild == NULL && T->rchild == NULL)
  69.                 return ++leaf;
  70.         Getleaf_Bitree(T->lchild);
  71.         Getleaf_Bitree(T->rchild);
  72. }

  73. void swap_Bitree(BiTree T)
  74. {
  75.         if (!T)
  76.                 return;
  77.         BiTree temp = (BiTree)malloc(sizeof(BiNode));
  78.         temp = T->lchild;
  79.         T->lchild = T->rchild;
  80.         T->rchild = temp;
  81.         swap_Bitree(T->lchild);
  82.         swap_Bitree(T->rchild);
  83. }

  84. int main()
  85. {
  86.         BiTree T = NULL;
  87.         pre_create_Bitree(&T);
  88.         printf("先序遍历为: \n");
  89.         pre_traverse_Bitree(T);
  90.         printf("该树高度为: %d\n", Gethight_Bitree(T));
  91.         printf("该树有%d个叶子\n", Getleaf_Bitree(T));
  92.         swap_Bitree(T);
  93.         printf("交换左右节点后先序遍历为: \n");
  94.         pre_traverse_Bitree(T);

  95.         return 0;
  96. }
复制代码
最佳答案
2023-3-28 18:39:51
第27行,scanf("%c", &e);,改成,scanf_s("%c",&e,1);
       

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-28 18:39:51 | 显示全部楼层    本楼为最佳答案   
第27行,scanf("%c", &e);,改成,scanf_s("%c",&e,1);
       

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-10 05:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表