c语言acm的题,真的不会了。

img

你好,代码已给出,望采纳。
即对称且平均成两部分之后仍然相等的数组。

int palindrome_array()
{
    int arr[1000] = {0};
    int size_arr = 0,elem = 0;
    while(1){
        printf("请输入数组有效长度,必须是偶数且大于等于2且小于等于1000\n");
        scanf("%d",&size_arr);
        if((size_arr>=2) && (size_arr<=1000) && (0==size_arr%2))
            break;
        printf("输入无效!\n");
    }
    
    //输入数组元素
    printf("依次输入数组的各个元素\n");
    for(int aount=0; aount<size_arr; aount++){
        scanf("%d",&elem);
        arr[aount] = elem;
    }

    //将数组看成两部分进行比较,三个用于循环的下标
    int left = 0;
    int right = size_arr/2 - 1;
    int flag = size_arr/2;

    while(flag < size_arr){
        if( (arr[flag] == arr[right]) && (arr[flag] == arr[left])){
            ++ flag;
            ++ left;
            -- right;
        }
        else{
            printf("NO\n");
            return -1;
        }
    }
    printf("YES\n");
    return 0;
}