下面是一個示例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函數來判斷是否是回文序列。如果是回文序列,則輸出相應的信息。