Мне нужно прочитать некоторые числа из файла и сгенерировать все числа, которые можно сформировать, удалив 1 цифру в начале и одну из конца (для каждого прочитанного числа) и распечатать их в новый файл. Я знаю, как читать и печатать в файлах, поэтому мой вопрос больше о том, как я должен думать при решении этой проблемы.
Вот пример для этой проблемы:
для 3457 вывод должен быть:
457
345
34
45
57
3
4
5
7
Первоначально я думал о том, чтобы прочитать числа в виде массива строк с использованием двойного указателя (при условии, что я знаю, сколько чисел мне нужно прочитать, чтобы я мог динамически распределять для него память), а затем поработать с ними.
После этого я подумал о способе генерации чисел, полученных путем удаления 1 цифры с начала и одной с этого конца (но не одновременно), для чего я использовал цикл for:
for ( i = 1, j = (strlen(p[0]) - 2); i < strlen(p[0]) - 2, j >=0; ++i, --j ) //p[0] is my first number read from the file
{
printf("\n%s", p[0] + i); //this will print the numbers 457, 57, 7
char temp[10];
strncpy(temp, p[0], j);//I copy into a new temporary string to print the numbers 345, 34, 3
temp[j] = '\0';
printf("%s", temp);
printf("\n%s", temp + i);//this will print the numbers 45,4
}
Но я понятия не имею, как поступить с остальными числами, и я просто не смог найти или придумать алгоритм, который будет печатать их в таком порядке, поэтому я был бы очень признателен за помощь в том, как решить эту проблему