具体要求如下:
①编制一个函数pq(n),返回n!值。
②编制主函数,由键盘输入m与n(m≥n≥O),调用(1)中的函数计算下列算式值。
m!/(m-n)!n!
③在主函数中,输入m与n之前要有提示,并检查输入数据的合理性,对于不合理的输入,应输出出错信息,不再进行计算。在函数pq(n)中也要检查n的合理性,当n<O时输出出错信息,不再进行计算。
④分别输入(m,n)=(3,-1),(0,0),(8,3),(3,8),(8,8)运行该程序。
⑤画出模块pq()的流程图。
求大神赐教啊
c语言编程 2.计算并输出 m!/(m-n)!n!
答案:2 悬赏:80
解决时间 2021-04-21 18:06
- 提问者网友:回憶丶初
- 2021-04-20 20:28
最佳答案
- 二级知识专家网友:寂寞的炫耀
- 2021-04-20 21:53
#include
int pq(int n)//计算n的阶乘
{
int temp=1;
while(n>=1)
{
temp=temp*n;
n--;
}
return temp;
}
void main()
{
int m,n;
printf("please input m:");
scanf("%d",&m);
printf("please input n:");
scanf("%d",&n);
if(m>=n&&n>=0)//判断输入格式,并进行计算
{
printf("m!/[(m-n)!n!]=%d\n",pq(m)/(pq(m-n)*pq(n)));
}
else//出错提示
{
printf("error input!\n");
}
}
int pq(int n)//计算n的阶乘
{
int temp=1;
while(n>=1)
{
temp=temp*n;
n--;
}
return temp;
}
void main()
{
int m,n;
printf("please input m:");
scanf("%d",&m);
printf("please input n:");
scanf("%d",&n);
if(m>=n&&n>=0)//判断输入格式,并进行计算
{
printf("m!/[(m-n)!n!]=%d\n",pq(m)/(pq(m-n)*pq(n)));
}
else//出错提示
{
printf("error input!\n");
}
}
全部回答
- 1楼网友:一身浪痞味
- 2021-04-20 23:20
long func(int m){
int i,sum=1;
for(i=1;i<=m;i++)
sum=sum*i;
return sum;
}
main(){
int m,n;
float x;
printf("input m,n(m>n)");
scanf("%d %d",&m,&n);
if(m<0 || n<0 || m<n ){
printf("data error! ");
return;
}
else{
x=(float)func(m)/(func(n)*func(m-n));
printf("result is %f \n",x);
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯