鱼C论坛

 找回密码
 立即注册
查看: 2891|回复: 2

关于VC中的栈溢出 求解!!!!

[复制链接]
发表于 2013-12-10 13:10:36 | 显示全部楼层 |阅读模式
1鱼币
本帖最后由 ☆﹎尐の潴猪 于 2013-12-11 10:01 编辑
  1. #include <stdio.h>
  2. #define LT(x,y)  x>y?0:1
  3. #define MAXSIZE 11
  4. typedef int KeyType;

  5. typedef struct {
  6. KeyType key;
  7. } RedType;

  8. typedef struct{
  9. RedType r[MAXSIZE];
  10. int length;
  11. }SqList;

  12. void ShellInsert(SqList & L,int dk)
  13. {
  14.     int i,j;
  15.     for(i=dk+1;i<=L.length;i++)
  16.     if(LT(L.r[i].key,L.r[i-dk].key))
  17.         {
  18.             L.r[0].key=L.r[i].key;
  19.         for(j=i-dk;j>0&<(L.r[0].key,L.r[j].key);j-=dk)   //为什么我在调试的时候,这里的J会不满足J>0的条件?
  20.             L.r[j+dk].key=L.r[j].key;
  21.         L.r[j+dk].key=L.r[0].key;
  22.         }
  23. }//ShellInsert

  24. int main()
  25. {
  26.         int i;
  27.     int a[11]={0,49,38,65,97,76,13,27,49,55,04};
  28.     SqList L;
  29.     L.length=MAXSIZE;
  30.     for(i=1;i<MAXSIZE;i++)
  31.         L.r[i].key=a[i];
  32.        
  33.     ShellInsert(L,L.length/2);
  34.     for(i=1;i<MAXSIZE;i++)
  35.         printf("%d ",L.r[i].key);
  36.         printf("\n");
  37.     ShellInsert(L,(L.length)/4+1);
  38.     for(i=1;i<MAXSIZE;i++)
  39.         printf("%d ",L.r[i].key);
  40.     return 0;
  41. }
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-12-11 11:40:46 | 显示全部楼层
for(j=i-dk;j>0&<(L.r[0].key,L.r[j].key);j-=dk)
写的有问题啊是代码粘错了吗?
  j>0&<(L.r[0].key,L.r[j].key); 再看看
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-3-8 23:54:22 | 显示全部楼层
希尔排序?被你写的好乱,没注释,看不下去。
看这个吧:http://my.oschina.net/u/819106/blog/205475有几种常见排序算法,包括希尔排序。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-18 03:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表