求教一个循环起始位置改变的问题
#include "stdio.h"int findmax(int *pt,int n)
{
int *p;
int t;
for(;n>=0;n--)
{
for(p=pt;p<pt+n;p++)
{
if((*p)<*(p+1))
{
printf("第%d次交换前数据是:*p=%d,*(p+1)=%d\n",16-n,*p,*(p+1));
t=*(p+1);
*(p+1)=*p;
*p=t;
printf("交换的结果是:*p=%d,*(p+1)=%d\n\n",*p,*(p+1));
}
}
}
}
main()
{
int i,x;
int Num[15]={1,13,4,3,6,5,7,10,19,12,34,56,43,11,23};
printf("寻找最大的元素的指针\n\n");
printf("原数组是:\n");
for(i=0;i<15;i++)
printf("%d ",Num[i]);
printf("\n");
findmax(Num,15);
}
为什么这段程序第一次循环从数组0元素开始循环对比 在执行n--一次后就改为从数组3 4位开始对比元素了呢?