温馨提示×

利用C语言在二维数组中寻找回文序列

小樊
83
2024-04-26 17:24:52
栏目: 编程语言

下面是一个示例C程序,用来在一个二维数组中寻找回文序列:

#include <stdio.h>
#include <stdbool.h>

#define ROWS 4
#define COLS 4

bool isPalindrome(int arr[], int size) {
    int i, j;
    for (i = 0, j = size - 1; i < j; i++, j--) {
        if (arr[i] != arr[j]) {
            return false;
        }
    }
    return true;
}

int main() {
    int arr[ROWS][COLS] = {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {3, 7, 9, 3},
        {4, 3, 2, 1}
    };
    
    int i, j;
    
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            int row[COLS], col[ROWS];
            
            // Get row values
            for (int k = 0; k < COLS; k++) {
                row[k] = arr[i][k];
            }
            
            // Get column values
            for (int k = 0; k < ROWS; k++) {
                col[k] = arr[k][j];
            }
            
            // Check if row or column is palindrome
            if (isPalindrome(row, COLS)) {
                printf("Palindrome found in row %d\n", i+1);
            }
            if (isPalindrome(col, ROWS)) {
                printf("Palindrome found in column %d\n", j+1);
            }
        }
    }
    
    return 0;
}

在这个示例程序中,我们首先定义了一个4x4的二维数组arr,并实现了一个用来判断是否回文的函数isPalindrome。然后在main函数中,我们遍历二维数组的每一行和每一列,分别将其拷贝到行数组row和列数组col中,并调用isPalindrome函数来判断是否是回文序列。如果是回文序列,则输出相应的信息。

0