1、 输入一个正整数n,用3种方法分别计算下式的和(保留4位小数)

(1)使用一重循环,不使用自定义函数。(2)定义和调用函数fact(n)计算n的阶乘。(3)使用嵌套循环。输入输出示例:Inputn:10e=2.7183... (1) 使用一重循环,不使用自定义函数。
(2) 定义和调用函数fact(n)计算n的阶乘。
(3) 使用嵌套循环。
输入输出示例:
Input n: 10
e=2.7183
 思考:本题可以采用3种方法编程,即一重循环、使用函数和嵌套循环,你认为这些方法的优点和缺点各是什么?你擅长用哪种方法编程?
展开
 我来答
大气猫44
2015-06-17 · TA获得超过1257个赞
知道答主
回答量:74
采纳率:0%
帮助的人:9.1万
展开全部
/
printf(", total).4f\ i <
for (j = i;= n;/
total += temp;= n;
double total = 0.h"
double total = 0:%:%;;= n;嵌套循环, temp = 1.0, total); j >.0; i <.0;
total = total + temp.0; i;;

/%d" j, &n); j--)
temp = temp / i++)
{
temp = temp /
}

return total;

double fact(int n)
{
int i.0;= 1;n"
}

int main(void)
{
int i; i++)
{
temp = 1, temp = 1; i <;
for (i = 1;调用函数
total = 0.4f\.0;嵌套循环
total = 0;

scanf(", fact(n));/

// i, n;调用函数;n".4f\一重循环
for (i = 1:%; i++)
{
temp = temp /一重循环;, j;
total = total + temp;
for (i = 1#include "
}
printf("
}
printf("n"

return 0

/
total);嵌套循环;调用函数; i++)
total += temp /.0;一重循环
&n).4f\= n.4f\ j--)
total = total + temp /
}

int main(void)
{
int i;%d"

/= j;
printf("

return 0
j;= n;n"= 1
n; i++)
{
temp = 1;n" i <.4f\.0; i++)
total = total + temp /

scanf("
for (i = 1;/
for (i = 1;
double total = 0.0;iostream>= i.0;
for (j = i;
temp = 1;
using namespace std;;
fact(n))
total); j >

/
double total = 0; i < i <;
printf("调用函数
total = 0;n":%:%:%;一重循环
for (i = 1;/.0;嵌套循环
total = 0;= n;
return total
平实还惬意的小国宝C
2010-05-18 · TA获得超过182个赞
知道答主
回答量:62
采纳率:0%
帮助的人:37.4万
展开全部
#include "stdio.h"

double fact(int n)
{
int i;
double total = 0.0, temp = 1.0;
for (i = 1; i <= n; i++)
{
temp = temp / i;
total = total + temp;
}

return total;
}

int main(void)
{
int i, j, n;
double total = 0.0, temp = 1.0;

scanf("%d", &n);

//一重循环
for (i = 1; i <= n; i++)
{
temp = temp / i;
total += temp;
}
printf("一重循环:%.4f\n", total);

//调用函数
total = 0.0;
printf("调用函数:%.4f\n", fact(n));

//嵌套循环
total = 0.0;
for (i = 1; i <= n; i++)
{
temp = 1.0;
for (j = i; j >= 1; j--)
temp = temp / j;
total = total + temp;
}
printf("嵌套循环:%.4f\n", total);

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ssswangqiao
2011-04-18 · 超过10用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:24万
展开全部
这个是第一种:
#include<stdio.h>
void main()
{
int i,j=1,N;
printf("请输入N的值:\n");
scanf("%d",&N);
for(i=1;i<=N;i++)
j*=i;
printf("%d的阶乘是:%d\n",N,j);
}
这个是第二种:
#include<stdio.h>
int fact(int n)
{
int ji=1,i;
for(i=1;i<=n;i++)
ji*=i;
return ji;
}
void main()
{ int N,ji;
printf("请输入N的值:\n");
scanf("%d",&N);
ji=fact(N);
printf("%d的阶乘是:%d\n",N,ji);

}
第三种不太理解。。。不好意思。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
315208756
2010-05-18 · TA获得超过312个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:113万
展开全部
#include <iostream>
using namespace std;

double fact(int n)
{
int i;
double total = 0.0, temp = 1.0;
for (i = 1; i <= n; i++)
total = total + temp /= i;
return total;
}

int main(void)
{
int i, j, n;
double total = 0.0, temp = 1.0;

scanf("%d", &n);

//一重循环
for (i = 1; i <= n; i++)
total += temp /= i;

printf("一重循环:%.4f\n", total);

//调用函数
total = 0.0;
printf("调用函数:%.4f\n", fact(n));

//嵌套循环
total = 0.0;
for (i = 1; i <= n; i++)
{
temp = 1.0;
for (j = i; j >= 1; j--)
total = total + temp /= j;
printf("嵌套循环:%.4f\n", total);

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式