| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 601 人关注过本帖
标题:冒泡法排序 问题,求解
只看楼主 加入收藏
nightwar
Rank: 2
等 级:论坛游民
帖 子:32
专家分:13
注 册:2012-3-25
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:4 
冒泡法排序 问题,求解
程序代码:
#include "stdio.h"
void main()
{

 int i,k;

 int a[80];

 printf("Input numbers in 80:");

 scanf("%d",&k);

 for(i=0;i<k;i++)
  scanf("%d",&a[i]);

 void sort(int b[],int s);   /**/

 void prin(int b[],int s);   /**/

 sort(a,k);

 prin(a,k);

 getch();
}
void sort(int b[],int s)
{                               /**/
  int j,m,flag;
  int t;
  for(j=1;j<=s-1;j++)
   {
     flag=0;
     for(m=0;m<s-j-1;m++)
      {
       if(b[m]<b[m+1])
        {
         t=b[m];
         b[m]=b[m+1];
         b[m+1]=t;
         flag=1;
        }
      }
     if(flag==0) break;
    }

 }
void prin(int b[],int s)
{                            /**/
  int j;
  for(j=1;j<=s;j++)
   {
    printf("%-6lf ",b[j]);
    if(j%5==0) printf("\n");
   }
}

找了很久。。实在是没有找到错误。。
2012-08-14 08:37
血祭幻岚
Rank: 2
等 级:论坛游民
帖 子:29
专家分:72
注 册:2012-3-21
收藏
得分:10 
void prin(int b[],int s)
 {                            /
   int j;
   for(j=1;j<=s;j++)
    {
     printf("%-6lf ",b[j]);
     if(j%5==0) printf("\n");
    }
 }
 
循环从0开始 for(j=0;j<s;j++);     printf("%-6lf ",b[j]);用%d就行了~~~
2012-08-14 09:44
netlin
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:24
帖 子:544
专家分:4308
注 册:2012-4-9
收藏
得分:10 
其它地方有没有错,我不知道,改了排序函数内的两个地方,楼主试一试。
 
 for(j=1;j<s;j++)
   {
     flag=0;
     for(m=0;m<s-j;m++)
      {
       if(b[m]<b[m+1])
        {
         t=b[m];
         b[m]=b[m+1];
         b[m+1]=t;
         flag=1;
        }
      }
     if(flag==0) break;
    }

做自己喜欢的事!
2012-08-14 14:40
nightwar
Rank: 2
等 级:论坛游民
帖 子:32
专家分:13
注 册:2012-3-25
收藏
得分:0 
试了。。还是那几个地方报错
2012-09-12 00:12
nightwar
Rank: 2
等 级:论坛游民
帖 子:32
专家分:13
注 册:2012-3-25
收藏
得分:0 
程序代码:
#include "stdio.h"
#define N 80
void main()
{int a[N];

 int i,m;

 void sort(int b[],int k);

 void print(int b[],int k);

 printf("\nInput m(<80):");

 scanf("%d",&m);

 for(i=0;i<m;i++)
  scanf("%d",&a[i]);

 sort(a,m);

 print(a,m);

 getch();
}
void sort(int b[],int k)
{int i,j,t,flag;

 for(j=0;j<k-j-1;j++)

 {flag=0;
  for(i=0;i<k-1;i++)
   if(b[i]>b[i+1])
   {t=b[i];
    b[i]=b[i+1];
    b[i+1]=t;
    flag=1;
   }
  if(flag==0) break;

 }
}
void print(int b[],int k)
{int i;

 for(i=0;i<k;i++)
  {
   if(i%4==0) putchar('\n');
   printf("%-6d",b[i]);
  }
}

这是好的代码。。
2012-09-12 00:14
快速回复:冒泡法排序 问题,求解
数据加载中...
 
   



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

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