我想找出使用遞歸和傳遞指針作爲函數參數的數字階乘。但是這個錯誤總是出現。 Debugers和編碼器!我需要你的幫助。無效的操作數爲二進制*(有'INT'和'INT *')
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 *,不好。你想如何將一個整數與一個指針相乘? – 2014-10-05 14:21:06