| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 699 人关注过本帖
标题:函数调用的冒泡法,恳求大哥大姐帮忙!
只看楼主 加入收藏
zhxxinyu
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-12-10
收藏
 问题点数:0 回复次数:5 
函数调用的冒泡法,恳求大哥大姐帮忙!
#include <stdio.h>
swap(int a[]);
main()
{   int a[10],i;
    for(i=0;i<10;i++)
       scanf("%d",&a[i]);      
   swap(a);
}
swap(int a[])
{int i,j,t;
for(i=0;i<9;i++)
  for(j=0;j<10-i;j++)
          if(a[j]>a[j+1])
          {t=a[j]; a[j]=a[j+1]; a[j+1]=t;}
    printf("The sorted numbers:\n");
    for(j=0;j<10;j++)
    printf("%d ",a[j]);
}
搜索更多相关主题的帖子: 函数 大姐 冒泡 恳求 
2008-12-10 18:13
zqlzs
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-10-18
收藏
得分:0 
内层循环越界了吧
2008-12-10 22:53
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
for(j=0;j<10-i;j++)
          if(a[j]>a[j+1])
          {t=a[j]; a[j]=a[j+1]; a[j+1]=t;}
---------------------

改为:
for(j=i+1;j<9;++j)
    if(a[i]>a[j])
    {
        t=a[i];
        a[i]=a[j];
        a[j]=t;
    }
2008-12-10 22:59
守鹤
Rank: 4
来 自:山東臨沂
等 级:贵宾
威 望:12
帖 子:337
专家分:0
注 册:2008-6-20
收藏
得分:0 
void   sort(int  a[],int  ext)
{
  int  flag, j,exg;
  for(int i=0;i<ext-1;i++)
  {    for(j=0;j<ext-i-1;j++)
       {   if(a[j]>a[j+1])
              flag=j;       //取下标值
        }
        if(flag!=j)        //若最大值的下标与最后数值的下标不等,则交换
        {   exg=a[flag];a[flag]=a[ext-i-1];a[ext-i-1]=exg;
         }
}

多少个日日夜夜想起你,只希望有缘再次相见
2008-12-10 23:19
choco1024
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:183
专家分:140
注 册:2008-8-31
收藏
得分:0 
楼主那样的算法也可以,不过在外层循环少了一次,应该是for(i=0;i<=9;i++),还有那
swap函数,最好加上返回值类型为void。
2008-12-11 00:08
新浪
Rank: 3Rank: 3
来 自:水星
等 级:论坛游侠
威 望:1
帖 子:770
专家分:167
注 册:2008-6-10
收藏
得分:0 
冒泡法 加个监视变量对基本有序的数据可以提高速率

呵呵

天下皆醒,唯我独醉;  天下皆白,唯我独黑
2008-12-11 11:53
快速回复:函数调用的冒泡法,恳求大哥大姐帮忙!
数据加载中...
 
   



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

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