c语言刚才没写全,帮看下哪里不对,运行如果是什么

来源:百度知道 编辑:UC知道 时间:2024/09/21 01:52:07
用递归法求N!,递归公式为:
n!= {1
n.(n-1)!

float fac(n)
int n;
{
float f;
if(n<0) printf(“n<0,data error!”);
else if (n==0 ¦¦n==1) f=1;
else f=fac(n-1)*n;
return (f);
}
main( )
{
int n;
float y;
printf(“input a integer number:”);
scanf(“%d”,&n);
y=fac(n);
printf(“%d!=%15.0f”,n,y);
}

没什么问题啊,我把你缺的不全了,你看看
#include <stdio.h>
float fac(int);
void main( )
{
int n;
float y;
printf("input a integer number:");
scanf("%d",&n);
y=fac(n);
printf("%d!=%15.0f",n,y);
}
float fac(int n)
{
float f;
if(n<0) printf("n<0,data error!");
else if (n==0 ||n==1) f=1;
else f=fac(n-1)*n;
return (f);
}

程序的逻辑没有问题,就是有些符号是在中文输入状态下输入的,所以编译器无法识别,另外,现在的函数头部一般不再写成
float fac(n)
int n;

这种传统形式,而应该写成float fac(int n)这种ANSI C形式,修改后的程序如下:

//---------------------------------------------------------------------------

#include <stdio.h>

float fac(n)
int n;
{
float f;
if(n<0) printf("n<0,data error!");
else if (n==0||n==1) f=1;
else f=fac(n-1)*n;
return (f);
}
main( )
{
int n;
float y;