希尔排序法 这个程序有什么问题啊!

来源:百度知道 编辑:UC知道 时间:2024/06/02 05:48:37
#include<stdio.h>
#define N 3
void main()
{
int i,a[N],temp,d=N/2;
printf("Please input the numbers:\n");
for(i=0;i<N;i++)
scanf("%d ",a[i]);
for(i=0;i<N;i++)
printf("%d ",a[i]);
while(d>=1)
{
for(i=0;i<N/2;i++)
if(a[i]>a[i+d])
{
temp=a[i];a[i]=a[i+d];a[i+d]=temp;
}
d=d/2;
}
printf("the right sequence should be:\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
}

你把d定义为int 型的,后面的操作不会受阻吗?
^_^!

scanf输入有问题,d定义为int无法继续输入
改为
for(i=0;i<N;i++)
scanf("%df ",&a[i]);
就OK了

有道理。