CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

大家帮忙看看,哪里需要修改,这是一个希尔排序的程序

楼主zwj0231075(周文君)2006-07-01 11:11:05 在 C/C++ / C语言 提问

运行的时候出的错误  
  #include<stdio.h>  
  #define   MAXITEM   10  
  void   shellsort(int   b[],int   n)  
  {  
  int   i,j,gap;  
  int   x;  
  gap   =   n/2;//gap是排序次数  
  while(   gap>0   )  
  {  
  for(   i=gap   +   1;   i<=   n;i++)  
  {  
  j   =   i   -   gap;  
  while(   j   >   0   )  
  if   (   b[j]   >   b[   j+gap   ]   )  
  {  
  x   =   b[j];//将r[j]与r[j+gap]进行交换  
  b[j]   =   b[j+gap];  
  b[j+gap]   =   x;  
  //j   =   j-gap;  
  }  
  else   j   =   0;  
  }  
  gap   =   gap/2;  
  }  
  for(   i=0;i<n;i++)  
  {  
  printf("%d,",b[i]);  
  }  
  }  
  void   main(void)  
  {  
  int   a[MAXITEM];  
  int   m=10,i=0;  
  for(   i=1;i<=m;i++)  
  {  
  printf("请输入第%d个数:",i);  
  scanf("%d",&a[i]);  
  printf("\n");  
  }  
  shellsort(a,m);  
  } 问题点数:20、回复次数:3Top

1 楼chenhu_doc(^0^纯一狼^0^ 看书看到大笑,直到不能自已)回复于 2006-07-01 12:05:59 得分 0

for(   i=0;i<m;i++)     //   就是这个地方!1Top

2 楼chenhu_doc(^0^纯一狼^0^ 看书看到大笑,直到不能自已)回复于 2006-07-01 12:06:43 得分 0

#define   MAXITEM   10  
   
  int   a[MAXITEM];  
   
  for(   i=1;i<=m;i++)   //   error::   可用范围:   a[0]   ````````a[9]Top

3 楼jixingzhong(瞌睡虫·星辰)回复于 2006-07-01 12:33:35 得分 0

#include   <stdio.h>  
  #include   <stdlib.h>  
  #define   Max   15  
  void   shell_sort(int   num[])  
  {  
          int   d=Max;  
          while(d>1)  
          {  
                  int   i,j,key;  
                  d=d/3+1;  
                  for(i=d;i<Max;i++)  
                  {  
                          if(num[i]<num[i-d])  
                          {  
                                  key=num[i];  
                                  j=i-d;  
                                  while(j>=0&&key<num[j])  
              {  
                                          num[j+d]=num[j];  
                                          j-=d;  
                                  }  
                num[j+d]=key;  
                          }      
                  }  
          }  
  }  
   
  int   main()  
  {  
          int   num[Max]={15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};  
          int   k;  
          for(k=0;k<Max;k++)  
          {  
                  printf("%d     ",num[k]);  
          }  
          printf("\n");  
          shell_sort(num);  
          for(k=0;k<Max;k++)printf("%d     ",num[k]);  
          printf("\n");  
          return   0;  
  }  
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:zwj0231075

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo