懂C语言的高手帮帮我!解释一下这条程序好不好?#include <stdio.h> ..
答好加20!#include<stdio.h>longf1(inti){longj=0;if(i==2)j=2;elsej=f1(i-1)*i;returnj;}intf...
答好加20!
#include <stdio.h>
long f1(int i)
{long j=0;
if(i==2) j=2;
else j=f1(i-1)*i;
return j;
}
int f2(long n)
{int b=0;
int i=0;
while(n)
{b=n%10;
n=n/10;
if(!b) i++;
}
return i;
}
main()
{int i;
long t;
printf("please input n:");
scanf("%d",&i);
t=f1(i);
i=f2(t);
printf("n!=%ld\n",t);
printf("有 %d 个 0\n",i);
getchar();
}
要每一步的解释,越详细越好!
教会了我加20 展开
#include <stdio.h>
long f1(int i)
{long j=0;
if(i==2) j=2;
else j=f1(i-1)*i;
return j;
}
int f2(long n)
{int b=0;
int i=0;
while(n)
{b=n%10;
n=n/10;
if(!b) i++;
}
return i;
}
main()
{int i;
long t;
printf("please input n:");
scanf("%d",&i);
t=f1(i);
i=f2(t);
printf("n!=%ld\n",t);
printf("有 %d 个 0\n",i);
getchar();
}
要每一步的解释,越详细越好!
教会了我加20 展开
3个回答
2008-07-05
展开全部
#include <stdio.h>//头文件
long f1(int i)//定义函数f1函数返回值为long
{long j=0;
if(i==2) j=2;//递归 调用边界条件
else j=f1(i-1)*i;//递归调用f1求i的阶乘
return j;//返回i的阶乘
}
int f2(long n)定义函数f2函数返回值为int
{int b=0;//变量b初始化为0
int i=0;//变量i初始化为0
while(n)//求N中有几个0
{b=n%10;//b依次得到N 个 十 百 千上的数
n=n/10;//N除以10 以便得到十为上的数
if(!b) i++;//判断b是0 i加1 说明N中存在一个0
}
return i;//返回N中0的个数
}
main()// 主函数
{int i;
long t;
printf("please input n:");//提示输入
scanf("%d",&i);//输入一个数给 i
t=f1(i);//调用函数f1
i=f2(t);//调用函数f2
printf("n!=%ld\n",t);//输出i的阶乘
printf("有 %d 个 0\n",i);输出有几个0
getchar();//起到暂停 作用
}
long f1(int i)//定义函数f1函数返回值为long
{long j=0;
if(i==2) j=2;//递归 调用边界条件
else j=f1(i-1)*i;//递归调用f1求i的阶乘
return j;//返回i的阶乘
}
int f2(long n)定义函数f2函数返回值为int
{int b=0;//变量b初始化为0
int i=0;//变量i初始化为0
while(n)//求N中有几个0
{b=n%10;//b依次得到N 个 十 百 千上的数
n=n/10;//N除以10 以便得到十为上的数
if(!b) i++;//判断b是0 i加1 说明N中存在一个0
}
return i;//返回N中0的个数
}
main()// 主函数
{int i;
long t;
printf("please input n:");//提示输入
scanf("%d",&i);//输入一个数给 i
t=f1(i);//调用函数f1
i=f2(t);//调用函数f2
printf("n!=%ld\n",t);//输出i的阶乘
printf("有 %d 个 0\n",i);输出有几个0
getchar();//起到暂停 作用
}
展开全部
#include <stdio.h> 头文件,必须要有的东西
long f1(int i) 定义了long型的数据
{long j=0;
if(i==2) j=2; if else 子句
else j=f1(i-1)*i;
return j; 返回变量j
}
int f2(long n)
{int b=0;
int i=0;
while(n)
{b=n%10;
n=n/10;
if(!b) i++;
}
return i;
}
main() 函数的入口
{int i;
long t;
printf("please input n:"); 输出语句
scanf("%d",&i); 输入语句
t=f1(i);
i=f2(t);
printf("n!=%ld\n",t);
printf("有 %d 个 0\n",i);
getchar(); 也是输入语句
}
long f1(int i) 定义了long型的数据
{long j=0;
if(i==2) j=2; if else 子句
else j=f1(i-1)*i;
return j; 返回变量j
}
int f2(long n)
{int b=0;
int i=0;
while(n)
{b=n%10;
n=n/10;
if(!b) i++;
}
return i;
}
main() 函数的入口
{int i;
long t;
printf("please input n:"); 输出语句
scanf("%d",&i); 输入语句
t=f1(i);
i=f2(t);
printf("n!=%ld\n",t);
printf("有 %d 个 0\n",i);
getchar(); 也是输入语句
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询