结果为什么出错
有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。(用指针实现)运行时出现Divide error,不知道为什么,请大家指导一下.
#include <stdio.h>
#define N 10
int fun (int *p, int n, int m)
{
int i, t, k = 2;
for (i = 0; i < n - m; i++)
{
k = i % k;
t = *p;
*p = *(p+n-m+k);
*(p+n-m+k) = t;
}
}
void main ()
{
int i, m, a[N];
printf ("please enter number:");
for (i = 0; i < N; i++)
{
scanf ("%d", &a[i]);
}
printf ("please input m(m < 10):");
scanf ("%d", &m);
fun (a, N, m);
for (i = 0; i < N; i++)
{
printf ("%d", a[i]);
}
}