此代码可否实现数组的排序
此代码可否实现数组的排序:(有一个数组有十个元素,用指针对其排序,用选择法,能否用此代码实现)
for(i=0;i<9;i++)
{
p=&a[i];
for(j=i+1;j<10;j++)
{
q=&a[j];
if(*p>*q)
{temp=*p;*p=*q;*q=temp;}
}
要好好想一想!
答案可是不能的,为什么?
#include <stdio.h>
#include <conio.h>
int main()
{
int *p, *q;
int a[10] = {3, 4, 5, 8, 1, 2, 10, 7, 6, 9}, i, j;
for (i = 0; i < 9; i++)
{
p = &a[i];
for (j = i + 1; j < 10; j++)
{
q = &a[j];
if (*p > *q)
{
int itemp;
itemp = *p;
*p = *q;
*q = itemp;
}
}
}
for (j = 0; j < 10; j++)
{
printf("%3d", a[j]);
}
printf("\n");
getch();
return 0;
}