算法演示系统中 主界面的一些问题?、
typedef struct{
int key;
}RecType;
RecType R[L];
int num;
int sum;
int sun; //定义排序趟数的全局变量
//主函数
int main()
{
RecType S;
int i,k;
char ch1,ch2,q;
printf("\n\t\t 排序算法演示系统\n\n\t\t请输入%d个待排序的数据:",L);
for(i=1;i<=L;i++)
{
scanf("%d",&S[i].key);
getchar();
printf("\t\t");
}
ch1='y';???????????????????????????‘y’是什么意思在这?
while(ch1=='y')
{ printf("\n");
printf("\n\t\t 菜 单 \n");
printf("\n\t\t***********************************************\n");
printf("\n\t\t 1--------更新排序数据 2--------直接插入排序 \n");
printf("\n\t\t 3--------希 尔 排 序 4--------冒 泡 排 序 \n");
printf("\n\t\t 5--------快 速 排 序 6--------直接选择排序 \n");
printf("\n\t\t 7--------堆 排 序 8--------归 并 排 序 \n");
printf("\n\t\t *** 0--------退 出 *** \n");
printf("\n\t\t***********************************************\n");
printf("\n\t\t请选择:");
scanf("%c",&ch2);
getchar();
for(i=1;i<=L;i++)
{
R[i].key=S[i].key;
}
switch(ch2)
{
case '1':
printf("\n\t\t请输入%d个待排序数据\n\t\t",L);
for(i=1;i<=L;i++)
{
scanf("%d",&S[i].key);
getchar();???????????????????是把输入的数据存入键盘缓存区么?
printf("\t\t");
}
printf("\n\t\t数据输入完毕!");
break;
case '2':
Insertsort();
break;
case '3':
Shellsort();
break;
case '4':
Bubblesort();
break;
case '5':
printf("\n\t\t原始数据为(按回车键开始排序):\n\t\t");
for(k=1;k<=L;k++)
{
printf("%5d",R[k].key);
}
getchar();
printf("\n");
num=0;sun=0;sum=0;
Quicksort(1,L);
printf("\n\t\t排序最终结果是:\n\t\t");
for(k=1;k<=L;k++)
{
printf("%5d",R[k].key);
}
printf("\n\t\t比较次数是:%d\n\t\t",sum);
printf("\n\t\t交换次数是:%d\n\t\t",sun);
break;
case '6':
Selectsort();
break;
case '7':
Heap();
break;
case '8':
Mergesort();
break;
case '0':
ch1='n';????????????????、、‘n’是什么意思
break;
default:
system("cls");//清屏
printf("\n\t\t对不起,您输入有误,请重新输入!\n");
break;
}
if(ch2!='0')
{
if(ch2=='2'||ch2=='3'||ch2=='4'||ch2=='5'||ch2=='6'||ch2=='7'||ch2=='8')
{
printf("\n\n\t\t排序完毕!");
printf("\n\t\t按回车键继续!");
q=getchar();
if(q!='\n')
{
getchar();
ch1='n';
}
}
}
}
return 1;
}
//系统主界面