快乐打码 2022-11-06 13:21 采纳率: 71.4%
浏览 49
已结题

请问我这哪错了,为什么我得不到我想要的答案,是哪错了吗?要怎么改正

7-8 冒泡法排序

将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。

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

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

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

输入样例:
6 2
2 3 5 1 6 4
输出样例:
2 1 3 4 5 6

#include<stdio.h>
void bubble_sort(int arr,int N){
    int i=0;
    int k;
    for(i=0;i<N-1;i++){
        int j=0;
        for(j=0;j<=k;j++){
            if(arr[j]>arr[j+1])
            int tmp=arr[j];
            arr[j]=arr[j+1];
            arr[j+1]=tmp;
            if(j==1){printf("%d",arr[j]);}
            else {printf(" %d",arr[j]);}
        }
        
    }
}
int main(){
    int N,K;
    scanf("%d%d\n",&N,&k);
    int arr[N],i=0;
   for(i=0;i<N-1;i++){
       scanf("%d\n",&arr[i]);
   }
    int bubble_sort(arr,N);
    return 0;
}

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2022-11-06 23:37
    关注

    修改如下,供参考:

    #include<stdio.h>
    #define N 101
    void bubble_sort(int arr[],int n,int k) //修改
    {
        int i,j;
        for(i=0;i<k;i++) //for(i=0;i<N-1;i++)
        {
            for(j=0;j<n-1-i;j++) //for(j=0;j<=k;j++)
            {
                if(arr[j]>arr[j+1])
                {
                    int tmp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=tmp;
                }
                //if(j==1){printf("%d",arr[j]);}
                //else {printf(" %d",arr[j]);}
            }
        }
    }
    int main(){
        int n,K;
        scanf("%d%d",&n,&K);  //("%d%d\n",&N,&k);
        int arr[N],i=0;
        for(i=0;i<n;i++){     //for(i=0;i<N-1;i++)
           scanf("%d",&arr[i]);//("%d\n",&arr[i])
        }
        bubble_sort(arr,n,K);  //int bubble_sort(arr,N);
    
        for(i=0;i<n;i++)       //修改,增加输出
            printf(i==0?"%d":" %d",arr[i]);
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 已采纳回答 11月7日
  • 创建了问题 11月6日

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?