一颗,一朵
2021-06-01 16:39
采纳率: 100%
浏览 24

问一下我这个希尔排序的代码为什么不能运行

#include <stdio.h>
typedef int KeyType;
typedef struct
{KeyType key;
}RecType;
 

void ShellSort(RecType R[], int n)
{
    int i, j, d;
    RecType tmp;
    d = n / 2;                
    while (d > 0)                    
    {
        for (i = d;i < n;i++)
        {
            j = i - d;
            tmp = R[i];
            while (j >= 0 && R[j].key > tmp.key)
            {
                R[j + d] = R[j];
                j = j - d;
            }
            R[j + d] = tmp;
        }
        d = d / 2;                    
    }
}
int main()
{RecType R[6];
int i;
printf("请输入6个数\n");
for(i=0;i<=6;i++)
scanf("%d",&R[i].key);
ShellSort(R,6);
 for(i=0;i<=6;i++)
printf("%d",R[i].key);
return 0;
}

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

相关推荐 更多相似问题