下面是一个示例C程序,用来在一个二维数组中寻找回文序列:
#include#include #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函数来判断是否是回文序列。如果是回文序列,则输出相应的信息。