十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include stdio.h
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站制作、成都网站建设、平南网络推广、小程序制作、平南网络营销、平南企业策划、平南品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供平南建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
#define MAX 20
int main(void)
{
int i,n;
int repeat, ri;
double sum[MAX] = {0};
double fact(int n);
scanf("%d", repeat);
for(ri = 1; ri = repeat; ri++){
scanf("%d", n);
for(i=0; i=n; i++)
sum[ri - 1] += fact(i);
// printf("sum = %.0f\n", sum);
}
for(i=0; irepeat; i++) {
printf("sum = %.0f\n", sum[i]);
}
return 0;
}
double fact(int n) {
if(n == 0)
return 1;
return n * fact(n - 1);
}
没有现成的阶乘函数。一般自己写一小段程序,很少用函数实现。
你的函数原型是这个int jiecheng(int a);调用的却是 s=jiecheng(); 没有传参进去,所以报错,应该改为:
int s;
int result;
scanf("%d",s);
result=jiecheng(s);
另外,还要做一个特殊处理,比如:当参数为零时,输出为1;当参数为-1时,输出0;当为负数时,提示不正确
f是fac()函数内部的静态变量,那么,f只在第一次进入fac()函数时才执行其初始化操作,以后都会跳过初始化操作。所以第一次执行fac(1)函数时,f初始化为1,并乘以1,f仍为1;第二次执行fac(2)时,跳过初始化操作,f=f*2,f为2;第三次执行fac(3)时,跳过初始化操作,f=f*3,f为6;第四次执行fac(4)时,跳过初始化操作,f=f*4,f为24;......以此类推。
#includestdio.h
voidmain(){
intn,result;
printf("请输入一个数字,求它的阶乘:");
scanf("%d",n);
result=calc(n);
printf("结果:%d",result);
}
intcalc(intn){
intresult=1,i;
for(i=n;i=1;i--)
result=result*i;
returnresult;
}
扩展资料
C语言函数的调用
函数定义好以后,要被其它函数调用了才能被执行。C语言的函数是能相互调用的,但在调用函数前,必须对函数的类型进行说明,就算是标准库函数也不例外。
标准库函数的说明会被按功能分别写在不一样的头文件中,使用时只要在文件最前面用#include预处理语句引入相应的头文件。如前面使用的printf函数的说明是放在文件名为stdio.h的头文件中。
#include stdio.h
main()
{
long n,sum=1;//10 以上的阶乘就比较大了
int i;
printf("请输入你要求的阶乘:")
scanf("%d",n);//先输入要求的数
for(i=n;i0;i--)//乘到1为止
{
sum*=i;
}
printf("%d != %d",n,sum);
return 0;
}