QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1170|回复: 15

帮忙。。。求救

[复制链接]
发表于 2004-4-12 16:53:52 | 显示全部楼层 |阅读模式
我是大一新生。。我们指针都没学到。。遇到一个问题
用冒泡法对10 个数进行排序,思路是将相邻的两个数比较。。小的调到前头。
但是。。要动画显示全部过程。并用颜色标记将要移动的两个数。怎么办啊。。用
linux编写
发表于 2004-4-12 18:17:25 | 显示全部楼层
是用c编写吧,要求在Linux上运行?那就是用gcc编译了
用动画显示过程,可以参照一下幽灵程序
回复

使用道具 举报

 楼主| 发表于 2004-4-13 21:19:20 | 显示全部楼层
在那里看啊???幽灵程序
回复

使用道具 举报

 楼主| 发表于 2004-4-14 20:45:38 | 显示全部楼层
帮帮忙啊
回复

使用道具 举报

发表于 2004-4-16 01:42:47 | 显示全部楼层
最简单的办法就是在终端上用ncurses库来显示彩色字符了,如果要用图形来显示动画建议用SDL。
回复

使用道具 举报

 楼主| 发表于 2004-4-16 14:48:11 | 显示全部楼层
怎么编阿。。。谭好强教授的书上没有。。我的钱又不够去买书。。。帮帮忙啊
回复

使用道具 举报

 楼主| 发表于 2004-4-18 10:01:03 | 显示全部楼层
......................斑竹救救命啊
回复

使用道具 举报

发表于 2004-4-18 10:17:28 | 显示全部楼层
什么学校啊?
大一就让做这样的题?
回复

使用道具 举报

 楼主| 发表于 2004-4-18 16:30:34 | 显示全部楼层
湖南信息职业技术学院。。这可是我们的课程设计阿。。各位老大请帮帮忙啊。。求求你们了。。
回复

使用道具 举报

发表于 2004-4-18 18:17:26 | 显示全部楼层
好,我找个时间写。
回复

使用道具 举报

 楼主| 发表于 2004-4-18 21:38:34 | 显示全部楼层
谢谢了。。希望能在星期三能拿到。。。因为我要交了          不好意思阿
回复

使用道具 举报

 楼主| 发表于 2004-4-20 10:41:53 | 显示全部楼层
..
回复

使用道具 举报

 楼主| 发表于 2004-4-20 10:48:36 | 显示全部楼层
..
回复

使用道具 举报

发表于 2004-4-20 13:02:45 | 显示全部楼层
..
回复

使用道具 举报

发表于 2004-4-20 23:37:09 | 显示全部楼层
mmpcfans:

下面就是你想要的冒泡演示程序代码:

#define NORMAL "\033[0m"
#define GREEN  "\033[1;32m"
#define BLUE   "\033[1;34m"

void bubble(int *numbers,int total);
void disp_demo(int *numbers,int total,int x,int y,int c);
/* -------------------------------- */
main()
{
  int i;
  int test[10];
  printf("Plase enter 10 numbers:\n");
  for(i=0;i<10;i++)scanf("%d ",&test);
  bubble(test,10);
  disp_demo(test,10,-1,-1,-1);
  printf(NORMAL "Bubble sort completed!\n");
}
/* -------------------------------- */
void bubble(int *numbers,int total)
{
  int i,j,k,temp;
  for(i=1;i<total;i++){
    for(j=total-1;j>=i;--j){
      disp_demo(numbers,10,j-1,j,0);
      sleep(1);
      if(numbers[j-1]>numbers[j]){
        temp=numbers[j-1];
        numbers[j-1]=numbers[j];
        numbers[j]=temp;
        disp_demo(numbers,10,j,j-1,1);
        sleep(1);
      }
    }
  }
}
/* -------------------------------- */
void disp_demo(int *numbers,int total,int x,int y,int c)
{
  int i;
  system("clear");
  printf(NORMAL "Bubble demo:\n\n");
  for(i=0;i<total;i++){
    if(i==y && c==0)printf(GREEN "%d   ",numbers);
    else if(i==y && c==1){
      printf(GREEN "%d",numbers);
      printf(NORMAL "<->");
    }
    else if(i==x)printf(BLUE "%d   ",numbers);
    else printf(NORMAL "%d   ",numbers);
  }
  printf("\n\n");
}
/* -------------------------------- */
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-8 14:00 , Processed in 0.058942 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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