Написать не рекурсивную функцию, используя стек - C (СИ)
Формулировка задачи:
Написать не рекурсивную функцию, которая используя стек, вычисляет значение F(m,n) для любой пары положительных чисел n и m за соотношением:
Не могу совсем разобраться с задачей, не соображаю даже с чего мне начать. Уравнение через if'ы смогу решить но что такое стеки и как их сюда прикрутить не знаю.
Решение задачи: «Написать не рекурсивную функцию, используя стек»
textual
Листинг программы
int cr(char * mass[]){
int x =-1;
char ch[1];
while(1){
printf("Введите x >0 или x = 0 \n")
fread(ch ,1,1,stdint);
x = ch[0] - '0';
if(x >= 0)
break;
// обратите внимание, здесь не анализируются служебные символы, такие как \n и прочие
}
return x;
}
Объяснение кода листинга программы
- Объявлена функция cr с типом возвращаемого значения int и параметром char *mass[]
- Внутри функции объявлены две переменные: x со значением -1 и ch типа char с размером 1 байт.
- Запущен цикл while(1), который будет выполняться до тех пор, пока пользователь не введет значение x > 0 или x = 0.
- Внутри цикла выводится сообщение с просьбой ввести x.
- Затем с помощью функции fread считывается один символ из стандартного ввода в переменную ch.
- Присваивается значение x равное первому символу в массиве ch, приведенному к типу int и считанному без регистра.
- Если значение x больше или равно нулю, то цикл прерывается.
- Функция возвращает значение x.