| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 409 人关注过本帖
标题:算法演示系统中 主界面的一些问题?、
只看楼主 加入收藏
IT飞飞
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-9-8
结帖率:66.67%
收藏
已结贴  问题点数:15 回复次数:2 
算法演示系统中 主界面的一些问题?、
  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;
}
//系统主界面
搜索更多相关主题的帖子: 系统 
2013-01-15 18:50
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:15 
红色的就是你的问题吗?
y n 什么意思,这个应该是拟定的一个标识符吧,估计只有作者才知道什么意思
yes no?

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-01-17 00:15
caoboxx
Rank: 1
来 自:广西柳州
等 级:新手上路
帖 子:10
专家分:9
注 册:2013-1-22
收藏
得分:0 
首先 y 和 n 是一个标识符,判断是否进入循环内部。 只有当 ch == y  时 while(ch1=='y') 语句才会返回真进入循环内部,显示主界面。
而当 ch = n 这个语句的前面 应该看到 case 0 ,case 0在主界面表示的意思退出,再进行下一次循环时
while(ch1=='y')返回假,就不会进入循环了,程序就结束了。
getchar()这个函数是接收一个字符,前面还有一个scanf语句接收的是一个int数字,我推测getchar()的作用是接收 回车换行
或者其他错误输入的字符然后抛弃,因为他没有定义变量来保存这个字符。
2013-01-29 14:52
快速回复:算法演示系统中 主界面的一些问题?、
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026369 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved