编写一个函数来反转第一列和最后一列的数组元素

时间:2017-05-27 17:46:02

标签: c arrays

数据:具有N行,M列尺寸的实数数组。编写一个函数来反转第一列和最后一列的数组元素。我该怎么办?

enter image description here

1 个答案:

答案 0 :(得分:1)

请记住,C按行存储矩阵,即A [N] [M]是具有N行和M列的矩阵。

#include <stdio.h>
#define N 4
#define M 4
int main() {
    int i, j, temp;
    int A[N][M] =
            {
                    {1, 2, 3, 4},
                    {5, 6, 7, 8},
                    {9, 1, 2, 3},
                    {4, 5, 6, 7}
            };
    for (i = 0; i < N; i++) {
        for (j = 0; j < M; j++) {
            printf("%d", A[i][j]);
        }
        printf("\n");
    }
    printf("\n");
    for (i = 0; i < N / 2; i++) {
        temp = A[i][0];
        A[i][0] = A[N - 1 - i][0];
        A[N - 1 - i][0] = temp;
    }
    for (i = 0; i < N / 2; i++) {
        temp = A[i][M - 1];
        A[i][M - 1] = A[N - 1 - i][M - 1];
        A[N - 1 - i][M - 1] = temp;
    }
    for (i = 0; i < N; i++) {
        for (j = 0; j < M; j++) {
            printf("%d", A[i][j]);
        }
        printf("\n");
    }
    printf("\n");
    return 0;
}

测试

1234
5678
9123
4567

4237
9673
5128
1564