C语言递归 计算阶乘
输入正整数n(1-10),求1-n的阶乘之和,最后必须输出回车。遇到异常情况(如不是1-10中数),输出"error";否则不要随意输出。例如,输入4,输出33;输入7,...
输入正整数n(1-10),求1-n的阶乘之和,最后必须输出回车。遇到异常情况(如不是1-10中数),输出"error";否则不要随意输出。
例如,输入4,输出33;
输入7,输出5913回车。
题目要求是这样的
下面是我自己写的程序,错在哪里,能不能给改一下
#include<stdio.h>
void f(int n);
int main()
{ int n,sum;
scanf_s("%d", &n);
void f(int n);
printf("%d", &sum);
}
void f(int n)
{
int sum,n;
scanf_s("%d", &n);
if(n<=0||n>10)
{
printf("error");
}
else if(n=1)
{
sum = 1;
}
else{sum = n*f(n - 1);
return (f);
}
} 展开
例如,输入4,输出33;
输入7,输出5913回车。
题目要求是这样的
下面是我自己写的程序,错在哪里,能不能给改一下
#include<stdio.h>
void f(int n);
int main()
{ int n,sum;
scanf_s("%d", &n);
void f(int n);
printf("%d", &sum);
}
void f(int n)
{
int sum,n;
scanf_s("%d", &n);
if(n<=0||n>10)
{
printf("error");
}
else if(n=1)
{
sum = 1;
}
else{sum = n*f(n - 1);
return (f);
}
} 展开
4个回答
展开全部
#include <stdio.h>
void f(int);
main()
{
int n;
unsigned long fac;
scanf("%d", &n);
fac=f(n);
if(fac)
printf("%d",fac);
}
void f(int n)
{
if(n<=0||n>10)
{
printf("error");
return 0;
}
else if(n==1) return 1;
else return n*f(n-1);
}
void f(int);
main()
{
int n;
unsigned long fac;
scanf("%d", &n);
fac=f(n);
if(fac)
printf("%d",fac);
}
void f(int n)
{
if(n<=0||n>10)
{
printf("error");
return 0;
}
else if(n==1) return 1;
else return n*f(n-1);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数调用是不写返回值的
追答
也就是第七行改为,f(int n)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你写的这个程序已经没有改的意义了,从算法到语句格式,错误百出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询