| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 655 人关注过本帖
标题:这个该进的冒泡排序什么地方错了?
只看楼主 加入收藏
dhz662820909
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2013-10-28
收藏
得分:0 
回复 3楼 韶志
主函数不用定义指针的,因为我在子函数中定义了指针,主函数只需要把地址给子函数,子函数就可以通过指针访问b的地址,并且修改b的值了。
另外,这里不涉及返回值,我的子函数里头都还没用到return,只是通过指针修改了主函数中的b的值。
程序,我自己改好了。

[ 本帖最后由 dhz662820909 于 2013-11-16 21:43 编辑 ]
2013-11-16 21:31
dhz662820909
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2013-10-28
收藏
得分:0 
谢谢各位!
这个是我自己修改好的了
#include<stdio.h>
void BubbleSort(float a[],int n,int *p);
int main(void)  /*冒泡排序的改进*/
{
    float a[10]={20,18,191,123,12,101,51,3,2,11};/*{3,3.1,5,4,10,25.1,2.9,4,7,3.3}*/
    int n,b;
    BubbleSort(a,10,&b);
    for(n=0;n<10;n++)
    printf(" %f",a[n]);
    printf("\n");
    printf("b=%d\n",b);
    system("pause");
    return(0);
}
void BubbleSort(float a[],int n,int *p)
{
     int i,j,k;
     float temp;
     *p=0;
     for(j=0;j<10-1;j++)
     {
                        for(k=0,i=0;i<10-j-1;i++)
                        {
                                             if(a[i]<a[i+1])
                                             {
                                                            temp=a[i];
                                                            a[i]=a[i+1];
                                                            a[i+1]=temp;
                                                            k=1;
                                                            *p=j+1;
                                             }
                                             
                        }
                        if(k=0)
                        break;

     
     }

}
2013-11-16 21:40
快速回复:这个该进的冒泡排序什么地方错了?
数据加载中...
 
   



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

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