小弟又遇到了问题 请大哥帮忙!
当拿到一道题目如 从1加到100求累加和问题 用循环做!其定义函数如下:
int sum ()
{
int sum =0,i;
for (i=1;i<=100;i++)
sum+=i;
return sum;
}
int sum()
{
int sum =1,i;
for (i=2;i<=100;i++)
sum+=i;
return sum;
}
两个算法都实现了从1到100累加和 请问2者的区别是 什么我一直理解不透啊?请各位帮忙
如果遇到了 用循环给这个t=1-1/(2*2)-1/(3*3)-...1/(m*m)定义一个函数的时候
是否也会有2种以上的做法啊请各位帮忙
----------------解决方案--------------------------------------------------------
两个循环可以说是没有区别,只是第二个已经累加过1了(因为sum=1),因此从2开始,而第一个函数是从1一直加到100,未提前累加1(因为sum=0);
所以如果说有区别,那么还可以写出许多的:
int sum()
{
int sum =3,i;
for (i=3;i<=100;i++)
sum+=i;
return sum;
}
int sum()
{
int sum =6,i;
for (i=4;i<=100;i++)
sum+=i;
return sum;
}
.........
int sum()
{
int sum =5050,i;
for (i=101;i<=100;i++)
sum+=i;
return sum;
}
----------------解决方案--------------------------------------------------------
同意
----------------解决方案--------------------------------------------------------
哦 原来如此啊 谢谢大哥 也就是说sum =3 for (i=3;i<=100;i++)其实这里的3已经是从1+2加过了 后面的sum=6是因为1+2+3=6加过了
那大哥看我关于下一题的解答:
float Y()
{
int i,float t=1.0;
for (i=2;i<m;i++)
t=t-(1/(i*i));
return t;
}
这时候好像不能给i赋其他的值了。。因为这里1-。。。是个减法!!!t=1-1/(2*2)-1/(3*3)-...1/(m*m);我又糊涂了
[此贴子已经被作者于2007-8-2 9:12:44编辑过]
----------------解决方案--------------------------------------------------------
回楼上
例如:
float t()
{
int i,t=0.75;
for (i=3;i<m;i++)
t=t-(1/(i*i));
return t;
}
----------------解决方案--------------------------------------------------------
不明白啊 题目要求是给t=1-1/(2*2)-1/(3*3)-...1/(m*m);编写函数。
float t()
{
int i,t=0.75;
for (i=3;i<m;i++)
t=t-(1/(i*i));
return t;
}
好像从0.75减了吧。我 再想想看
----------------解决方案--------------------------------------------------------
把1-1/(2*2)先算完,从1/(3*3)开始算
----------------解决方案--------------------------------------------------------
我这代码答案怎么老是0啊??
是关于上面 t=1-1/(2*2)-1/(3*3)-...1/(m*m) 的代码~~
/* Note:Your choice is C IDE */
#include "stdio.h"
float anwser=1.0 ;
int m,i ;
float func1 ( int x );
main()
{
printf ("please input a integer \n");
scanf ("%d",&m);
for (i=1 ;i<=m;i++) anwser -= func1 (i);
printf ("The anwser is %f\n",anwser);
}
float func1 (int x )
{
float h;
h = 1 / (x*x) ;
return h ;
}
----------------解决方案--------------------------------------------------------
啊 呀! 对对 这会终于搞懂了 那也可以 先算1-1/(2*2)-1/(3*3)后再定义i 和t了 哎 数学没学好啊 哈哈 谢谢大哥
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------