免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1294 | 回复: 2
打印 上一主题 下一主题

写一个bubble排序的程序,遇到很诡异的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-07 09:30 |只看该作者 |倒序浏览
在testsort.c中,

#include<stdlib.h>
#include<stdio.h>
#include"bubble.c"
#define NUM 10

int main()
{
        int i;
    int a[NUM] ={5, 2, 6, 7, 3, 8, 1, 9, 10, 4};
//    for (i = 0; i<NUM; i++)
//                   printf("*%x*\n", a+i);
//    for (i = 0; i<NUM; i++)
//                   printf("*%d*", *(a+i));
//        printf("\n");
        bubble(a, NUM);

    for (i = 0; i<NUM; i++)
            printf("*%x*\n", a+i);
    for (i = 0; i<NUM; i++)
                   printf("*%d*", *(a+i));
        printf("\n");
        return 1;
}
在buble.c 中,
void swap  (int *a, int *b);
void bubble(int *a, int length);
void bubble(int *a, int length)
{
        int i, j;

        for (i = 0; i< length; i++)
                for (j = 0; j < length-i; j++)
                        if ( a[j] > a[j+1] )
                                swap ( a+j, a+j+1);
}
void swap (int *a, int *b)
{
        int temp;
        temp = *a;
        *a = *b;
        *b = temp;
}

问题阐述:
如果在testsort中,
输出为:
*bffba4c8*
*bffba4cc*
*bffba4d0*
*bffba4d4*
*bffba4d8*
*bffba4dc*
*bffba4e0*
*bffba4e4*
*bffba4e8*
*bffba4ec*
*-1209025104**1**2**3**4**5**6**7**8**9*
如果把testsort中,注释的那段的注释去掉,让他运行,
输出为:
*bf98dea8*
*bf98deac*
*bf98deb0*
*bf98deb4*
*bf98deb8*
*bf98debc*
*bf98dec0*
*bf98dec4*
*bf98dec8*
*bf98decc*
*5**2**6**7**3**8**1**9**10**4*
*bf98dea8*
*bf98deac*
*bf98deb0*
*bf98deb4*
*bf98deb8*
*bf98debc*
*bf98dec0*
*bf98dec4*
*bf98dec8*
*bf98decc*
*1**2**3**4**5**6**7**8**9**10*

这是什么原因呢?

论坛徽章:
0
2 [报告]
发表于 2009-04-07 09:40 |只看该作者
检查下你的环境,我试了一把,没有问题

论坛徽章:
0
3 [报告]
发表于 2009-04-07 09:58 |只看该作者

回复 #2 雨过白鹭洲 的帖子

gcc 4.2.3-1 ubuntu,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP