- 注册时间
- 2004-10-13
- 最后登录
- 2019-5-15
⑧专业
*永恒国度*
- 积分
- 14145

|
程序如下:(用的是冒泡排序法)
main()
{
void sort(int array[],int n);
int data[10],*p,i;
printf("input 10 number\n");
for(i=0;i<10;i++)
scanf("%d",&data);
printf(" the original array is:");
for(p=data;p<data+10;p++)
{
if((p-&data[0])%5==0) printf("\n");
printf("%d",*p);
}
sort(data,10);
printf("\n the present array is:");
for(p=data;p<data+10;p++)
{
if((p-&data[0])%5==0) printf("\n");
printf("%5d",*p);
}
}
void sort(int array[],int n)
{
int *p1,*p2,temp;
for(p1=array;p1<array+(n-1);p1++)
for(p2=p1+1;p2<array+n;p2++)
if(*p1>*p2)
{
temp=*p1;
*p1=*p2;
*p2=temp;
}
}
我是不明白它最后那个循环,我自己写的话,是写成这样for(p2=p1;p2<array+n-p1;p2++)
而原程序中的for(p2=p1+1;p2<array+n;p2++) 应该如何理解呢?
[s:6] |
|