這是個二叉樹操作的選單,C語言
int main()
{
BiTree T;
int x,y;
while (1)
{
printf("-------------操作選項-----------\n");
printf("1:開始程式 \n");
printf("2:創建樹 \n");
printf("3:先序遍歷 \n");
printf("4:中序遍歷(遞回) \n");
printf("5:中序遍歷(非遞回) \n");
printf("6:后序遍歷 \n");
printf("0:退出程式 \n");
printf("--------------------------------\n");
printf("請開始程式: ");
scanf("%d",&x);
printf("\n");
if(x==0)
break;
switch(x)
{ case 1:
{ y=c();
switch(y)
{
case 2: CreateBiTree(&T);printf("\n");y=c();break;
case 3: printf("先序遍歷為:");pre(T);printf("\n");y=c();break;
case 4: printf("中序遍歷(遞回)為:");in(T);printf("\n");y=c();break;
case 5: printf("中序遍歷(非遞回)為:");inorder(T);printf("\n");y=c();break;
case 6: printf("后序遍歷為:");post(T);printf("\n");y=c();break;
default:
printf("請重新輸入\n");y=c();
}
}
default:
printf("請重新輸入\n");
}
}
}
輸入1 、2 、序列后,要重頭開始再輸1,然后再輸我要的操作,怎么才能只輸一次1,然后每次都能直接輸我要的指令
uj5u.com熱心網友回復:
y=c();這c()函式猜是個選擇函式,回傳值0-6或是別的數字,假設里面包含0(也可以是2-6以外的數字),這么改,供參考:#include<stdio.h>
int main()
{
BiTree T;
int x,y;
while (1)
{
printf("-------------操作選項-----------\n");
printf("1:開始程式 \n");
printf("2:創建樹 \n");
printf("3:先序遍歷 \n");
printf("4:中序遍歷(遞回) \n");
printf("5:中序遍歷(非遞回) \n");
printf("6:后序遍歷 \n");
printf("0:退出程式 \n");
printf("--------------------------------\n");
printf("請開始程式: ");
scanf("%d",&x);
printf("\n");
while(x==1){
y=c();
switch(y)
{
case 0: x=0;break;
case 2: CreateBiTree(&T); printf("\n");break; //y=c();
case 3: printf("先序遍歷為:");pre(T);printf("\n");break; //y=c();
case 4: printf("中序遍歷(遞回)為:");in(T);printf("\n");break;//y=c();
case 5: printf("中序遍歷(非遞回)為:");inorder(T);printf("\n");break;//y=c();
case 6: printf("后序遍歷為:");post(T);printf("\n");break; // y=c();
default:
printf("2:請重新輸入\n");break; //y=c();
}
}
if(x==0) break;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/282194.html
標籤:C語言
上一篇:求助!簡單的遞回問題
