酷友报道
2021-11-05 22:00
采纳率: 100%
浏览 26

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

img

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • X.尘中客 2021-11-05 22:42
    已采纳

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

    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;
    }
    
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题