标题:关于冒泡排序的疑惑,不知道哪里出了问题,求解
只看楼主
hanserisgood
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2022-8-16
结帖率:77.78%
已结贴  问题点数:15 回复次数:2 
关于冒泡排序的疑惑,不知道哪里出了问题,求解
#include<stdio.h>        //冒泡排序升序示例

void bubble(int*arr,int size);        

int main(void)
{
    int num,m;
    int arr[10] = {9,8,6,4,2,3,0,1,5,7};
    printf("排序前如下\n");
    num = sizeof(arr)/sizeof(arr[0]);
   for(int m=0;m<num;m++)
   printf("%d",arr[m]);
    printf("\n");
    printf("排序后的元素如下\n");
    bubble(arr,num);
   for(int m=0;m<num;m++)
   printf("%d",arr[m])
    return 0;
}
void bubble(int*arr,int size)     
{
    int i,j,temp;
    for(i=0;i<num-1;i++)
    {
        for(j=0;j<num-1-i;num++)
        {
            if(arr[j]>arr[j+1])
            {
                temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
        
    }
}
搜索更多相关主题的帖子: int printf for num 冒泡排序 
2022-09-09 17:15
不会游泳的虾
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:101
专家分:643
注 册:2021-7-1
得分:15 
for(j=0;j<num-1-i;num++)这句错误了,应为: for(j=0;j<num-1-i;j++) ,仔细一看,还有错误,排序函数修改如下:
程序代码:
void bubble(int* arr, int size)
{
    int i, j, temp;
    for (i = 0; i < size - 1; i++) //for (i = 0; i < num - 1; i++)
    {
        for (j = 0; j < size - 1 - i; j++) //for (j = 0; j < num - 1 - i; num++)
        {
            if (arr[j] > arr[j + 1])
            {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }

    }
}


[此贴子已经被作者于2022-9-9 17:35编辑过]

2022-09-09 17:33
hanserisgood
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2022-8-16
得分:0 
回复 2楼 不会游泳的虾
太感谢了,是我在改的时候弄错了,当局者迷了属于是...
2022-09-09 23:10



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




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

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