Я пытаюсь узнать факториал числа, используя рекурсию и передавая указатели в качестве аргументов функции. Но эта ошибка появляется постоянно. Отладчики и кодеры! Мне нужна твоя помощь с этим.
The code
#include<stdio.h>
int *factorial(int *);
int value, p=0, q=1, x, tmp;
void main() {
int *result;
puts("Enter the value::");
scanf("%d",&value);
result = factorial(&value);
printf("\nThe Result is::%d\n", *result);
}
int *factorial(int *n) {
if(*n == p || *n == q) {
return(&q);
}
else {
tmp = *n -1;
*n *= (factorial(&tmp));
return(n);
}
}
The error:
error: invalid operands to binary * (have ‘int’ and ‘int *’)
*n *= (factorial(&tmp));
int
, хорошо, ваш правый операнд —int*
, плохо. Как бы вы хотели умножить целое число на указатель? - person Jens Gustedt   schedule 05.10.2014