编辑代码

#include <stdio.h>
#include <malloc.h>
#define ERROR -1
#define OK 0
int main (){
    int n, i, j, sum;

    sum = 0;
    scanf("%d", &n);
    if(n <= 0){
        printf("0\n");
        return ERROR;
    }else if(n == 1) {
        scanf("%d", &sum);
        printf("%d\n", sum);
        return OK;
    }else{
        int **arr = (int **)malloc(n*sizeof(int *));

        for(i = 0; i < n; i++) {
            arr[i] = (int *)malloc(n*sizeof(short int));
        }
        for(i = 0; i < n; i++) {
            for(j = 0; j < n; j++) {
                scanf("%d", &arr[i][j]);
            }
        }
        // for(i = 0; i < n; i++){
        //     for(j = 0; j < n; j++){
        //         printf("%d ", arr[i][j]);
        //         if(j == n-1){
        //             printf("\n");
        //         }
        //     }
        // }
        for(i = 0; i < n; i++) {
            for(j = 0; j < n; j++) {
                if(i == 0|| i == n-1|| j == 0|| j == n-1) {
                    sum += arr[i][j];
                }
            }
        }
        printf("%d\n",sum);
        for (i = 0; i < n; i++) {
            if(arr[i] != NULL){
                free(arr[i]);
            }
        }
        if(arr != NULL){
            free(arr);
        }
        return OK;
    }
    return 0;
}