程序运行不出结果,告诉我哪里错了?
第一个:#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define SIZE 10
void IS(int *a,int len)
{int i,j,t,h,n;
for(i=1;i<len;i++)
{
t=a[i];
j=j-1;
while(j>=0&&t<a[j])
{
a[j+1]=a[j];
j--;
}
a[j+1]=t;
printf("第%d步排序结果:",i);
for(h=0;h<n;h++)
{
printf("%d",a[h]);
}
printf("\n");
}
}
void main()
{
int arr[SIZE],i;
srand(time(NULL));
for(i=0;i<SIZE;i++)
{
arr[i]=rand()/1000+100;
}
printf("排序前:\n");
for(i=0;i<SIZE;i++)
{
printf("%d",arr[i]);
}
printf("\n");
IS(arr,SIZE);
printf("排序后:\n");
for(i=0;i<SIZE;i++)
{
printf("%d",arr[i]);
}
printf("\n");
}
第二个:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i,n,t,j,h,a[20];
printf("请输入n的值(n<=20):");
scanf("%d",&n);
printf("请输入%d个数:",n);
for(i=0;i<n;i++)
{printf("第%d个数:",i+1);
scanf("%d",&a[i]);}
printf("原来的顺序为:");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
for(i=1;i<n;i++)
{ t=a[i];
j=j-1;
while(j>=0&&t<a[j])
{ a[j+1]=a[j];
j--;
}
a[j+1]=t;
printf("第%d步排序结果:",i);
for(h=0;h<n;h++)
{
printf("%d",a[h]);
}
printf("\n");
}
printf("排好的顺序为:");
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
均是对“插入法”排序写的程序。