望大佬解惑。
这个代码我在运行的时候当我输入2的时候这两个结果正确的。当从三开始向后就都不正确了就比如我输入了三,阶乘每次是正确的得到六但是累加的变成8不知道为什么
#include <stdio.h>
#include <stdlib.h>
double f(int n){
if(n==0||n==1) return 1;
else return n*f(n-1);
}
double fs(int n){
if(n==0||n=1)return 1;
else return f(n-1)+f(n);
}
int main(int argc, char *argv[]) {
int n;
scanf("%d",&n);
printf("%f,%f",f(n),fs(n));
return 0;
}