C语言题目

[复制链接]
查看11 | 回复4 | 2008-1-27 10:30:43 | 显示全部楼层 |阅读模式
main()1/100*100 应该是1有2000个 那就应该是2000;如果楼主是这个意思1/(100*100)之后有两千个 一次相加的和是:详细,大家多多讨论:#include "math.h"main(){ int i; double k=0,sum=0,sum_pro=0; for(i=1;ik=%g--->sum=%g\n--->sum_pro=%g",i,k,sum,sum_pro); } printf("sum_pro=%.6g",sum_pro); printf("sum_pro=%0.6f",sum_pro);}http://hi.baidu.com/mysolarstar/blog/item/5326504aae3d1f2709f7efc6.html(这里有截图)turbo 2.0下运行的 得出结果
回复

使用道具 举报

千问 | 2008-1-27 10:30:43 | 显示全部楼层
一楼是对的!!!!他用的是递归三楼你仔细看返回类型
回复

使用道具 举报

千问 | 2008-1-27 10:30:43 | 显示全部楼层
/* 此题最重要的一点就是要考虑数据运算的 溢出问题 和 数据类型的表达能力问题, 而楼上的各位均没有充分意识到; 一楼 estellia 的方案看似简洁精巧(运用了递归), 实质上对楼主的题意理解有误, 而且未考虑数据 表达能力, 精度, 以及最重要的数据溢出问题, 根本得不到楼主要求的结果(我亲测过) 楼上的多数没有做过测试, mysolarstar 的运行结果我也看过了, 是 0.000136, 不符楼主要求 楼主的题应是这样的: y=1/(100*100)+1/(200*200)+1/(300*300)+......+1/(m*m) =(1/(1*1)+1/(2*2)+1/(3*3)+...+1/((m/100)*(m/100)))/10000 当 m = 2000 时, m/100 = 20 =( (20! * 20! / (1*1)) + (20! * 20! / (2*2)) + (20! * 20! / (3*3)) +...+(20! * 20! / (20*20)) ) / (20! * 20!) / 10000 我的程序采用通分来计算结果, 并不保证在某种环境上能输出所要求的结果, 仅作算法参考 在 turbo c 下已通过测试(vc 6.0 下不会有问题), 输出结果如下: Please input m: 2000 The result is: 0.000160 */ #include "stdio.h" void main(){ int i, j, m; double sum = 0.0, /* 用于计算通分后所有分子的和 */ common = 1.0, /* 用于计算公分母的平方根 */ temp = 1.0; /* 用于计算通分后各个分子的值 */ printf("Please input m: "); scanf("%d", &m); for(i = 1; i >n; for(i=1;iint main(void){ int m; float y=0; scanf("%d",&m); while (m>=100){y+=1.0/(m*m);m-=100; } printf("%f",y); return 0;}
回复

使用道具 举报

千问 | 2008-1-27 10:30:43 | 显示全部楼层
我是新手,看的不太懂...第四位的对吗?
回复

使用道具 举报

千问 | 2008-1-27 10:30:43 | 显示全部楼层
看起来还好float fun(int n){ if(n==1)
return 1/(n*10000); else
return fun(n-1)+1/(n*10000);}main(){ int n; scanf("%d",&n); printf("%f",fun(n));}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行