首先fact函数返回的是double类型,第一个参数是double型的二维指针.所以是
站在用户的角度思考问题,与客户深入沟通,找到蒙阴网站设计与蒙阴网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名与空间、网络空间、企业邮箱。业务覆盖蒙阴地区。
*c[i] = fact (c,y,z);
因为double *c[3];是二维double指针,
c[i]是一个double一维指针,*c[i]就是double型数据。c是二维指针,可以传过去
1。
#include "stdio.h"
//#define RECURSION 1
#ifdef RECURSION
long fact(int n)
{
if(n1) return 1;
return n*fact(n-1);
}
#else
long fact(int n)
{
long t=1;
for(int i=2;i=n;i++)
t*=i;
return t;
}
#endif
main()
{
long s=0;
for(int i=1;i=10;i++)
s+=fact(i);
printf("%ld\n",s);
}
2。
#include "stdio.h"
bool prime(int n)
{
if(n==1) return false;
for(int i=2;i=n/2;i++)
if(n%i==0) return false;
return true;
}
main()
{
int cnt=0;
int i=3;
while(cnt10)
{
if(prime(i) prime(i+2))
{
printf("(%d,%d)\n",i,i+2);
cnt++;
}
i+=2;
}
}
3。
非递归
#include "stdio.h"
void main()
{
int s=0,total=0;
int day=0;
while(s100)
{
if(day%2==0)
{
s+=3;
total+=3;
}
else
{
s-=2;
total+=2;
}
day++;
}
if(s100) total-=(s-100);
printf("total %d days,climb %d metres\n",day,total);
}
递归
#include "stdio.h"
struct node{
int day;
int total;
};
struct node f(int dest,int tag)
{
if(tag==0)
{
if(dest=3)
{
struct node temp;
temp.day=1;
temp.total=dest;
return temp;
}
else
{
struct node temp,temp1;
temp1=f(dest-3,1);
temp.day=temp1.day+1;
temp.total=temp1.total+3;
return temp;
}
}
else
{
struct node temp,temp1;
temp1=f(dest+2,0);
temp.day=temp1.day+1;
temp.total=temp1.total+2;
return temp;
}
}
void main()
{
struct node a=f(100,0);
printf("total %d days,climb %d metres\n",a.day,a.total);
}
#includestdio.hint fact(int n)。
{int ans=1,i;if(n=1) return 1;for(i=1;i=n; ++i)ans*=i;return ans;}
int main(){int n,ans;scanf("%d",n);ans=fact(n);printf("ans = %d\n",ans);return 0;}
扩展资料:
顺序结构:
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子里面的水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序。
写成:a = b; c = a; b =c;则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算、输出三步曲的程序就是顺序结构,例如计算圆的面积。
其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。
参考资料来源:百度百科-c语言
#include stdio.h
main()
{
int a,b,c,d=1;
scanf("%d",a);
printf("Please enter n:");
for(b=1;b=a;b++)
{
for(c=1;c=b;c++)
{
d=d*c;
}
printf("%d! = %ld\n",b,d);
d=1;
}
}
1、打开VC6.0软件,新建一个C语言的项目:
2、接下来编写主程序,首先定义用来求阶乘的递归函数以及主函数。在main函数里定义变量sum求和,调用递归函数fact(),并将返回值赋予sum,最后使用printf打印sum的结果,主程序就编写完了:
3、最后运行程序,观察输出的结果。以上就是C语言使用递归求阶乘的写法: