为什么这段代码在vs里可以运行,在HUST OJ里显示“答案错误”?

OJ问题:请编写函数fun,函数的功能是 :移动一维数组中的内容;若数组中有10个整数,要求把下标从0到p(含p,p小于10)的数组元素平移到数组的最后。
如:数组中原始内容为:1、2、3、4、5、6、7、8、9、10;p=3。
移动后数组中为5、6、7、8、9、10、1、2、3、4.

代码:

#include <string.h>
#include<stdlib.h>
void fun(int a[10],int p)
{
    int temp;
    for(int i=0;i<=p;i++)
    {
        temp=a[0];
        for(int j=0;j<9;j++)
        {
            a[j]=a[j+1];
        }
        a[9]=temp;
    }
}
int main() {
    int a[10]={1,2,3,4,5,6,7,8,9,10};
    int i;
    printf("初始数组:\n");
    for(i=0;i<10;i++){
        printf("%d ",a[i]);
    }
    int p;
    printf("\n请输入p的值:");
    scanf("%d",&p);
    fun(a,p);
    printf("结果数组:\n");
    for(i=0;i<10;i++){
        printf("%d ",a[i]);
    }
    printf("\n");
    return 0;
}


(1)库文件:#include <stdio.h>
(2)代码没问题,但是在oj上提交是有一定格式的,所以可能提交的格式不对:scanf、printf

fun里将i和j改在开始声明int i,j;