#include <stdio.h> int func(int n){ int r; if(n<0) printf("data error\n"); else if(n==0 || n==1) r=1; else r=n * func(n-1); return r; } int main(){ int n; int result=func(n); printf("please input n\n"); scanf_s("%d",&n); int result=func(n); printf("result=%d\n",result); }
其实代码和课程里的一样,关于这个报错,有人能帮忙解决一下吗?谢谢。
直接拷贝的你的代码,把15行去掉了,在19行声明 的result 。
这是运行结果。编译器用的是gcc。
把14行改成int n=0;试试看。你定义了n没赋初值就直接15行开始计算当然会报错。