一个关于数组中元素排序的问题
程序如下:# include <stdio.h>
void main()
{
int a[]={11,12,13,14,15,16,17,18,19,20},i;
int *p=a;
void change(int *q);
//原始数组的输出
printf("排序前的数组为:\n");
for(i=0;i<10;i++)
printf("a[%d]\t%d\n",i,*p++);
p=a;
change(*p);
//输出排序后的数组
printf("排序后的数组为:\n");
p=a;
for(i=0;i<10;i++)
printf("a[%d]\t%d\n",i,*p++);
}
void change(int *q)
{
int i,j,t,k;
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if(*(q+i)<*(q+j))
{
k=j;
}
if(k!=i)
t=*(q+i),*(q+i)=*(q+j),*(q+j)=t;
}
}
在编译运行之后只能输出原数组中的元素,交换后的元素不能输出,自动停止,系统为win7,编译器为VC6.0,提示windows正在寻找解决问题的方案,请各位高手帮帮忙,找找错误,万分感谢