怎么实现从数组最后一个元素开始,找到第一个非递增元素,然后再冒泡排排序

#include
int main()
{
int n,k,q,p,m,i,j,temp;
int a[1024];
scanf("%d",&m);
while(m--)
{
scanf("%d%d",&n,&k);
if((n=1024)||(k64)) return 0;
for(i=0;i while(k--)
{
for(i=n-1;i>0;i--)
{
if(a[i]>a[i-1])
{

                  for(p=1;p<n-i;p++)
                  {
                      for(q=i;q<n-i-p;q++)
                      {
                          if(a[q]>a[q+1])
                          {
                              temp=a[q];
                              a[q]=a[q+1];
                              a[q+1]=temp;
                          }
                      }
                  }
              }
       }
   }
}
for(i=0;i<n;i++)  printf("%d ",a[i]);
return 0;

}
为什么实现不了,从数组最后一个元素开始,找到第一个非递增元素,然后再冒泡排排序