Kiểm tra tính đối xứng của mảng

Yêu cầu:

Cho mảng A có n phần tử. Hãy cho biết mảng này có đối xứng hay không?

Thuật toán:

– Kiểm tra điều kiện A[i] = A[n-i]

Code:

/************************************************************
* Author: VNCODING
* History 
* 2014/11/23 first create VNCODING
*************************************************************/
#include "stdio.h"
#include "conio.h"
#include "string.h"

#define INT_SIZE sizeof(int)
#define ARR_MAX 100

bool is_arr_sym(int A[], int n);

void main()
{
    int A[] = {6, 5, -2, 1, 2, 1, -2, 5, 6};
    int B[] = {1, 2, 3, 3, 2, -1};
    int n = sizeof(A)/INT_SIZE;
    int m = sizeof(B)/INT_SIZE;

    if(is_arr_sym(A, n))
        printf("\nArray A is symmetry");
    else
        printf("\nArray A isn't symmetry");

    if(is_arr_sym(B, m))
        printf("\nArray B is symmetry");
    else
        printf("\nArray B isn't symmetry");

    getch();
}

//Check whether array is symmetry or not?
//Return: true if array is symmetry
// false if array isn't symmetry
bool is_arr_sym(int A[], int n)
{
    int i, j = n-1;
    for(i = 0; i < n/2; i++)
    {
       if(A[i] != A[j])
       {
           return false;
       }
       j--;
    }
    return true;
}

Kết quả:

Array A is symmetry
Array B isn't symmetry

2 Comments on Kiểm tra tính đối xứng của mảng

Leave a Reply to Việt Cancel reply