我这个程序哪里写错了嘛

#include<stdio.h>
int main()
{
int n, k, xx[20]={0};
int i, j, t;
printf("\nPlease enter n:");
scanf_s("%d", &n);
printf("\nPlease enter %d numbers:", n);
for (i = 0;i < n;i++)
scanf_s("%d", &xx[i]);
printf("\nPlease enter k:");
scanf_s("%d", &k);
for (i = 0;i < n-k;i++)
{
t = xx[0];
for (j = 1;j < k;j++)
xx[j] = xx[j-1];
xx[19] = t;
}
printf("\nAfter moving:\n");
for (i = 0;i < n;i++)
printf("%3d", xx[i]);
printf("\n");
}
目的是想将n个元素的数组的前k个移到数组的尾部变为后k个元素

你好,麻烦采纳一下吧


#include <stdio.h>

#define N 20

int main()

{int i,k,t,a[N];

for(i=0;i<N;i++)

a[i]=i+1;

scanf("%d",&k);

for(i=0;i<k;i++)

{t=a[i];

a[i]=a[N-k+i];

a[N-k+i]=t;

} 

for(i=0;i<N;i++)

printf("%d ",a[i]);

printf("\n");   

return 0;

}

img