方法一:利用递归函数
#include<stdio.h>
int fun(int m)
{
if(m==1)
return(1);
else
return(fun(m-1) * m);
}
int main()
{
int fun(int m);
int repeat,length=1,B[length];
scanf("%d",&repeat);
if(repeat>0&&repeat<10)
{
for(int i=0;i<repeat;i++)
{
int n,sum=0;
scanf("%d",&n);
if(n<=22)
{
sum=fun(n);
}
B[length-1]=sum;
length++;
}
}
for(int j=0;j<repeat;j++)
{
printf("%d\n",B[j]);
}
}
方法二:
#include<stdio.h>
int main()
{
int repeat,length=1,B[length];
scanf("%d",&repeat);
if(repeat>0&&repeat<10)
{
for(int i=0;i<repeat;i++)
{
int n,sum=1;
scanf("%d",&n);
if(n<=22)
{
for(int j=1;j<=n;j++)
{
sum=sum*j;
}
B[length-1]=sum;
length++;
}
}
}
for(int p=0;p<repeat;p++)
{
printf("%d\n",B[p]);
}
}
注(代码存在的问题):在编译器里运行时没有错误提示,也可以正常运行输出结果,但是在答题网站上提交的时候一直提示答案错误,实在是看不出来哪个地方有问题,希望各路大神帮忙指正呀!