当前位置: 代码迷 >> C语言 >> [求助]关于对一道题目的理解和解题思路问题!
  详细解决方案

[求助]关于对一道题目的理解和解题思路问题!

热度:145   发布时间:2007-08-02 08:36:31.0
[求助]关于对一道题目的理解和解题思路问题!

小弟又遇到了问题 请大哥帮忙!
当拿到一道题目如 从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种以上的做法啊请各位帮忙

搜索更多相关的解决方案: sum  思路  int  

----------------解决方案--------------------------------------------------------

两个循环可以说是没有区别,只是第二个已经累加过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了 哎 数学没学好啊 哈哈 谢谢大哥
----------------解决方案--------------------------------------------------------
回复:(Biglon)我这代码答案怎么老是0啊??是关于...
wa!大哥真是热心啊!!谢谢啊 我 觉得结果不重要  重要的是解题思路啊  谢谢你
----------------解决方案--------------------------------------------------------
  相关解决方案