标题:冒泡法排序程序,不知道哪里出了问题,求助
只看楼主
huzhidai
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-6-15
结帖率:100%
已结贴  问题点数:20 回复次数:5 
冒泡法排序程序,不知道哪里出了问题,求助
题目
将NN个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N-1N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对NN个数的排序。

本题要求对任意给定的KK(<N<N),输出扫描完第KK遍后的中间结果数列。

输入格式:

输入在第1行中给出NN和KK(1\le K<N\le 1001≤K<N≤100),在第2行中给出NN个待排序的整数,数字间以空格分隔。

输出格式:

在一行中输出冒泡排序法扫描完第KK遍后的中间结果数列,数字间以空格分隔,但末尾不得有多余空格。

我写的代码
程序代码:
#include<stdio.h>
void swap1(int *x, int *y)
{
    *y = *x ^ *y;
    *x = *x ^ *y;
    *y = *x ^ *y;
    
}
void bubble(int *a, int n, int k)
{
     int i = 1, j;
     while(k)
    {
        for(j = 0; j < n - i; j++)
        if(a[j] > a[j + 1])
        swap1(&a[j], &a[j + 1]);
        k -= 1;
        i += 1;
    }
    
}



int main(void)
{
    int n, k, i;
    scanf("%d %d", &n, &k);
    int a[n];
    for(i = 0; i < n; i++)
    scanf("%d", &a[i]);
    bubble(&a[0], n, k);
    for(i = 0; i < n; i++)
    printf("%d ", a[i]);
    putchar(8);
    
    
    return 0;
}


在网上找的答案都是C++的,所以没有看懂...
搜索更多相关主题的帖子: 最大的 元素 
2016-10-17 23:36
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
得分:0 
请问哪里有问题???
2016-10-17 23:46
ldsh304
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:242
专家分:755
注 册:2016-1-18
得分:20 
程序代码:
void swap1(int *x, int *y)
{
    *y = *x ^ *y;
    *x = *x ^ *y;
    *y = *x ^ *y;
  

}
你这是要干嘛呀,
交换两个数字的值是也可以这样写的
程序代码:
void swap1(int *x, int *y)
{
    int temp;
    temp = *x;
    *x = *y;
    y = temp;
}
才发现异或还可以这样用,那样写实没错的

[此贴子已经被作者于2016-10-18 14:44编辑过]

2016-10-18 13:53
ldsh304
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:242
专家分:755
注 册:2016-1-18
得分:0 
int a[n];//数组大小要使用常量

bubble(&a[0], n, k);//一般写a就行了, &a[0]看着好别扭

2016-10-18 14:04
a969798593
Rank: 2
等 级:论坛游民
威 望:1
帖 子:21
专家分:70
注 册:2016-10-13
得分:0 
怎么可能定义a[n],系统又不知道要给你开辟多大空间
2016-10-18 14:29
huzhidai
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-6-15
得分:0 
回复 3楼 ldsh304
哦~谢啦

c,lisp
2016-10-20 16:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-469921-1-1.html




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

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