Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C kiểm tra mảng đối xứng (Palindrome) - phiên bản lặp

Cho mảng arr[n], kiểm tra palindrome bằng vòng lặp (không đệ quy).

Duyệt hai con trỏ: i từ đầu, j từ cuối. So sánh arr[i] và arr[j] cho đến khi gặp nhau.

Ví dụ

Input: {1,0,0,1} → Output: Mảng đối xứng
Input: {1,2,3,4,5} → Output: Mảng không đối xứng

Mã nguồn C

#include <stdio.h>

int pallindrome(int arr[], int n) {
    int i, j, flag = 0;
    for (i = 0, j = n-1; i < n/2 && j >= n/2; i++, j--) {
        if (arr[i] != arr[j]) { flag = 1; break; }
    }
    return flag == 0 ? 1 : 0;
}

int main() {
    int arr[] = {1, 0, 2, 3, 2, 2, 1};
    int n = sizeof(arr) / sizeof(arr[0]);
    if (pallindrome(arr, n))
        printf("Mảng là đối xứng (Palindrome)\n");
    else
        printf("Mảng không đối xứng\n");
    return 0;
}

Kết quả

Mảng không đối xứng