c语言n的阶乘

如题所述

只写函数的话可以这样——

int func(int n){
    if(n==1 || n==0)
        return 1;
    return n*func(n-1);
}

也可以这样——推荐这种,时效好。

int func(int n){
    int s;
    for(s=1;n>1;s*=n--);
    return s;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-22
#include <stdio.h>

int main()
{
int j;
printf("请输入一个整数:\n");

scanf("%d", &j);
if (j <= 0)
{
return 0;
}
int i = 1,n = 1;
for (i = 1; i <= j;++i)
{
n *= i;
}
printf("%d的阶乘等于:%d\n", j, n);

return 0;
}
第2个回答  推荐于2017-12-23
#include<stdio.h>
void main()
{
int n, res = 1;
scanf("%d", &n);
for(int i = 1; i <=n; i++)
{
res *= i;
}
printf("%d", res);
}追问

return()是否要打?

追答

c语言不一定要return

如果你定义main为int main的话,那就必须return。

本回答被提问者和网友采纳
第3个回答  2014-03-22
#include <stdio.h>
int mac(int j)

int main(){
int n;
int i;
scanf("%d",&n);
i = mac(n)
printf("%d\n",i);

return 0;
}
int mac(int j){
if(j==1)
return 1;
else
return j*mac(j-1);

return 0;
}
相似回答