|  | #include<stdio.h>
 void shellSort(int *a, int n)
 {
 int gap;
 int i;
 int j;
 int t;
 
 for(gap = n/2; gap > 0; gap = gap/2)
 {
 for(i = gap; i < n; i++)
 {
 j = a;
 t = i - gap;
 while(t >= 0 && j < a[t])
 {
 a[t+gap]= a[t];
 t = t - gap;
 }
 a[t+gap] = j;
 }
 }
 printf("排序后的数据:\n");
 for(i = 0; i < n; i++)
 {
 printf("%d ",a);
 }
 printf("\n");
 }
 int main()
 {
 
 int a[100] = {0};
 int i = 0;
 int j = 0;
 printf("请输入您要排序的原始数(按-1键退出):");
 while(true)
 {
 scanf("%d",&a);
 
 if(a == -1)
 break;
 j++;
 i++;
 }
 printf("\n");
 shellSort(a, j);
 }
 
 |  |