当前位置: 代码迷 >> C语言 >> 求助:计算1+1/3+1/5+......+1/99的和
  详细解决方案

求助:计算1+1/3+1/5+......+1/99的和

热度:108   发布时间:2007-10-17 10:44:09.0
求助:计算1+1/3+1/5+......+1/99的和
#include <stdio.h>
void main()
{
int a=1,n,b;
float s;
do
{
s=s+(float)a/b;
printf("s=%f\n",s,b);
b=1+(n-1)*2;
}while(n==50);
}


不知道这个程序错在哪里,希望 哪位高手帮忙指教,谢谢
搜索更多相关的解决方案: float  void  int  main  

----------------解决方案--------------------------------------------------------
n没有给初值啊
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
int a=1,n,b;
float s;
do
{
s=s+(float)a/b;
printf("s=%f\n",s,b);
b=1+(n-1)*2;
}while(n==50);
}
----------------解决方案--------------------------------------------------------



Cy_Chance 给我的信息,他(她)很好的解决了这个问题,现在把它贴在这里,给大家分享:


第一觉得你的 b没有赋值 那么按默认应该是 0 这样是否要报错?
第二你怎么控制的循环变量 即 n 值怎么改变的?
n+=2;控制循环变量!到 n>99
#include <stdio.h>
void main()
{
int n;
int b=1;

float a=1.0;
float sum=0.0;

for(n=0;n<99;n+=2)
{
sum+=(float)(a/(b+n));

}
printf("1+1/3+1/5+......+1/99结果:\n");
printf("%.3f",sum);
getchar();
}


再次感谢Cy_Chance的支持!!!

[此贴子已经被作者于2007-10-17 11:48:32编辑过]


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






----------------解决方案--------------------------------------------------------
根据LZ的程序上修改了下!
#include <stdio.h>
void main()
{
int a=1,n=1,b=1;
float s=0;
do
{ n++;
s=s+(float)a/b;
b=1+(n-1)*2;
}while(n<=50);
printf("s=%f\n",s);
getch();
}

结果应该是2.93775
----------------解决方案--------------------------------------------------------
snb都没初始化么!
----------------解决方案--------------------------------------------------------
回复:(copu1)根据LZ的程序上修改了下!#include &l...
你的程序简单有效,很好,谢了
----------------解决方案--------------------------------------------------------
  相关解决方案