int a,b=1;int f(int m){for(a=1;a<=m;a++){b*=a;}return b;主函数就不写了
你要重置b的值为1
因为你a和b变量的声明在函数外面,而且在函数里面,你没有给b初始化值所以b每次都会累积