確定陣列是否為迴文陣列的 C 程式
給定大小為 n 的陣列 arr[],我們的任務是確定該陣列是否是迴文陣列。迴文陣列是正讀反讀都相同的一個序列,例如:MADAM、NAMAN 等。
因此,要檢查一個數組是否是迴文陣列,我們可以從頭到尾遍歷陣列,就像 −

示例
Input: arr[] = {1, 0, 0, 1}
Output: Array is palindrome
Input: arr[] = {1, 2, 3, 4, 5}
Output: Array is not palindrome下面使用的思路如下 −
我們從開頭和末尾遍歷陣列,直到它們都相等,並且檢查從開頭開始的元素是否與從末尾開始的元素相同,則該陣列就是迴文陣列,否則該陣列不是迴文陣列。
演算法
Start
In function int pallindrome(int arr[], int n)
Step 1-> initialize i, j, flag and assign flag as 0
Step 2-> Loop For i = 0, j=n-1 and i< n/2, j>=n/2 and i++, j--
If arr[i]!=arr[j] then,
Set flag as 1
Break
End If
End Loop
Step 3-> If flag == 1 then,
Return 0
Step 4-> Else
Return 1
End function
In function int main(int argc, char const *argv[])
Step 1-> Declare and initialize arr[] as {1, 0, 2, 3, 2, 2, 1}
Step 2-> Declare and initialize n as sizeof(arr)/sizeof(arr[0])
Step 3-> If pallindrome(arr, n) then,
Print "Array is pallindrome "
End if
Step 4-> Else
Print "Array is not pallindrome "
Return 0
End main
Stop示例
#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;
}
}
if (flag == 1)
return 0;
else
return 1;
}
int main(int argc, char const *argv[]) {
int arr[] = {1, 0, 2, 3, 2, 2, 1};
int n = sizeof(arr)/sizeof(arr[0]);
if(pallindrome(arr, n)) {
printf("Array is pallindrome
");
}
else
printf("Array is not pallindrome
");
return 0;
}輸出
如果執行以上程式碼,將生成以下輸出 −
Array is not palindrome
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP