全国计算机等级考试网 资讯快报 | 报考指南 | 一级考试 | 二级考试 | 三级考试 | 四级考试 | 证书查询
各省考试: | |
您现在的位置: 计算机等级考试 >> 二级考试 >> C语言 >> 辅导 >> 文章正文
C基础:C语言实现以及冒泡排序
作者:佚名    文章来源:互联网    点击数:    更新时间:2008-11-18 
【字体:
汉诺塔绝对是一个经典的算法题目,虽然当年也讲过,程序也不长,但是一直以来总觉得理解的不清楚,看程序也能明白什么意思,过一段时间程序忘了,想不起来的时候,就怎么都想不明白了,虽然说好像是那么回事,就是高不明白。借着前两天做八皇后的东风,顺便来理一下这个汉诺塔。园盘从上到下编号1, 2, ..., n,杆子从左至右A,B,C,A是from,C是to。我还是看了以前的java程序然后自己理解一下写的C程序,几乎没有差别,当然写的时候也忘了不少,第一遍出来错误的答案。程序如下:
  #include <stdio.h>
  #define INIT_NUM 3
  int count;
  void hanoi(int n, char from, char to, char middle)
  {
  if (n > 0)
  {
  count++;
  hanoi(n-1, from, middle, to);
  printf("Move No.%-2d from %c to %c\n", n, from, to);
  hanoi(n-1, middle, to, from);
  }
  }
  int main(int argc, char *argv[])
  {
  int init = INIT_NUM;
  if (argc==2)
  init = atoi(argv[1]);
  printf("A 是起始杆,C 是辅助杆,B 是目的杆。\n\n");
  hanoi(init, 'A', 'C' , 'B');
  printf("\nCount = %d", count);
  return 0;
  }  
  借着这股东风,我再顺便写一下排序的算法实现,我只记得冒泡跟快速排序了,现在先写一个冒泡排序吧:
  #include <stdio.h>
  void show (int *p)
  {
  int i=0;
  for (i=0 ;i<8 ;i++ )
  {
  printf("%3d ", p[i]);
  }
  printf("\n");
  }
  int main(int argc, char *argv[])
  {
  int p[] = {8, 9, 4, 5, 1, 7, 6, 0};
  int i = 0;
  int j = 0;
  int tmp = 0;
  for (i=0 ;i<8 ;i++ )
  {
  for (j=0 ;j<7-i ;j++ )
  {
  if (p[j] > p[j+1])
  {
  tmp = p[j];
  p[j] = p[j+1];
  p[j+1] = tmp;
  }
  }
  printf("第%2d轮排序结束:", i+1);
  show(p);
  }
  return 0;
  }
文章录入:0987    责任编辑:0987 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    更多资讯
     C基础:C语言实现以及冒泡排序 (11月18日)
     C语言辅导:C#实现虚拟桌面 (11月11日)
     应该怎样学习C语言? (11月11日)
     NamedandOptionalParameters (11月8日)
     开发自己的窗体设计器 (11月8日)
     C#中DES加密用法的使用方法 (11月8日)
     VisualC#实现清空回收箱程序 (11月8日)
     c#.net实体类序列化方法 (11月8日)
     C#非对称加密RSA实现 (11月8日)
     C#中避免相同MDI子窗口重复打开的方法 (11月8日)
     c#禁止窗口关闭方法 (11月8日)
     C语言辅导:C语言运算符表 (11月8日)
     二级C语言:数组中比较经典的11个真题 (11月8日)
     C基础(C语言中可变参数用法) (11月8日)
     C基础(wxWidgets的资源读取) (11月8日)
     C基础(C语言格式字符大全) (11月8日)
     unresolvedexternalsymbol_WinMain@16的解 (11月8日)
     CRun-TimeLibrary函数__isascii&iswascii (11月1日)
     C技巧(使用控制台程序测试DLL依赖) (11月1日)
     C技巧(使用内存DC加载并显示JPG图片) (11月1日)
     ·热门图文

    辅导:C语言里的
     ·热门课程培训
    普通文章 湖南:2008年下半年计算机等级考试6月10日-25日报
    普通文章 海南:2008年下半年计算机等级考试报名
    普通文章 关于2008年下半年山西省全国计算机等级考试报名
    普通文章 四川:2008年下半年全国计算机等级考试开始报名
    普通文章 河南:2008年下半年计算机等级考试6月1日-7月15日
    普通文章 福建:2008年下半年计算机等级考试报名
    普通文章 宁夏:2008年下半年计算机等级考试报名
    普通文章 广西:2008年下半年计算机等级考试报名
    普通文章 江苏:2008年下半年计算机等级考试报名
    普通文章 2008年全国计算机等级考试启用新版教材
     ·最新推荐信息
     计算机等级考试四级网络工程师考试大纲(08年版)
     三级数据库新大纲
     计算机等级考试三级考试PC技术考试大纲
     全国计算机等级考试大纲(四级)
     2007年计算机专业似“热”实“冷”
     四级笔试复习重点分值分布
     国计算机等级考试证书的有效期是多久?证书丢了是
     有保留成绩-考生成绩合格可免考
     全国计算机等级考试证书手机免费查询
     全国计算机等级考试管理规则