У меня есть код, который генерирует палиндром от 1 до n, и я хотел бы реализовать это:
Я объявлю массив в main, где я не знаю, сколько у него будет индексов. В этот массив я хочу получить результат:
{(все палиндромы от 1 до n) - (все палиндромы от до m, где m меньше n) и получить каждое число в каждом индексемассива.
Пример:
Палиндромы от 1 до 20 - палиндромы от 1 до 5 приведут к палиндромам от 6 до 20. Теперь возьмем каждый палиндром из интервала иположить каждый в индекс массива.
Я думаю, что это можно сделать с помощью указателей.
Проблемы, которые у меня есть:
- Я не знаю, как инициализироватьмассив
- Я не знаю, как инициализировать массив внутри функции
- Я не знаю, как на самом деле получить эти значения из функции
int generatePalindromes(int n)
{
int number=0;
int counter=0; //i have counter to count how many palindromes are inside the range
for(int j = 0; j < 2; j++)
{
int i = 1; //generate palindromes from 1
while ((number = createPalindrome(i, 2, j % 2)) < n) //generates to n, conversion is inside other function but thats not necessary for my question
{
printf("%d\n", number); //print palindrome
i++; //we will generate next number within the range
//here would be some pointer like *array[x]=number and passing into array in main and subtracting it from other *array[x]=number. Maybe better would be if I return these values (palindromes) into array normally via return and get value of counter via pointer
counter++; //add +1 to my palindrome counter
}
}
return counter; //i want to return value of how many palindromes are there
}
int main()
{
int lo,hi,array;
while (!feof(stdin))
{
printf("Enter the range:\n");
scanf(" %d %d ", &lo, &hi);
array=generatePalindromes(hi)-generatePalindromes(lo);
}
return 0;
}