请帮我运行一下,超级简单
我一运行就出错,不知道问题出在哪里。请帮我运行一下,看看结果。谢。
//我在VC下编的C程序,求N!
#include "iostream.h "
#include <iomanip>
using namespace std;
void main()
{
int n;
long factor(int n);
printf( "请输入正整数n: ");
scanf( "%d ",&n);
printf( "%d的阶乘是:%g ",n,factor(n));
}
long factor(int n) //阶乘函数n!
{
if(n==0)
return 1L;
else
return n*factor(n-1); //递归用法
}
[解决办法]
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
long factor(int n);
printf( "请输入正整数n: ");
scanf( "%d ",&n);
printf( "%d的阶乘是:%ld ",n,factor(n));
system( "pause ");
return 0;
}
long factor(int n) //阶乘函数n!
{
if(n==0)
return 1L;
else
return n*factor(n-1); //递归用法
}
[解决办法]
long factor(int n) //阶乘函数n!
{
if(n==0)
return 1L;
else
return n*factor(n-1); //递归用法
}
假设我传一个3进去,我们来算算看。
先是3 != 0;所以执行else部分。
一直递归,一直递归。。。。。。
还是用3做例子。你首先返回 "3 * factor(2) "
然后程序再把2塞进函数,就返回了 2 * factor (1)
然后再返回 1 * factor (0)
然后程序返回个1。
再回去。
依次,1 * 1 * 2 * 3。
最后,我想问一下,你这到底是C还是C++》不要搞杂交水稻。