Вы должны думать более структурно. Сначала разделите вашу задачу на подзадачи. В этом случае существуют подзадачи: 1. просмотреть все возможные комбинации 2. проверить, является ли эта комбинация палиндромом. Каждая задача - это другая функция - так легче думать, читать код и отлаживать. (Если вы хотите записать его в файл - это третье задание!)
Вот код для «прохождения всех возможных комбинаций». Я думаю, вы найдете, как проверить один массив, если это палиндром.
#include <iostream>
using namespace std;
bool isPalindrome(int* arr, int size);
bool findLargestPalindrome(int* arr, int size);
int main()
{
int arr[] = { 1,3,6,7,6,1,1,3,4,2,1,4,2,4,1,2,4,3,1,1,1,3,4,2,4,8,2,3,7,8,2 };
int arrSize = 31;
findLargestPalindrome(arr, arrSize);
}
bool findLargestPalindrome(int* arr, int size)
{
for (int testSize = size; testSize > 0; testSize--)
{
int startIndex = 0;
while (testSize + startIndex <= size)
{
int* arrayToTest = &(arr[startIndex]);
if (isPalindrome(arr, testSize))
{
//TODO: you found it - do with it whatever you want
return true;
}
startIndex++;
}
}
return false;
}
bool isPalindrome(int* arr, int size)
{
//TODO: your code for single palindrome
return false;
}