| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3596 人关注过本帖
标题:才学一个星期问两个白痴点的问题.谢谢啦~~~~
只看楼主 加入收藏
默默无纹
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-2-12
收藏
得分:0 
回复 10# 的帖子
谢谢了,改过就可以了。

从来怨天尤人每每自封为神
常怜众生如蚁不意身本凡尘
2008-03-03 09:29
berlinok
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-3-4
收藏
得分:0 
你的Y是负值啊
2008-03-04 16:42
berlinok
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-3-4
收藏
得分:0 
π/4≈1-1/3+1/5-1/7+...求π值 直到某一项的绝对值小与10的-6次方为止

#include<stdio.h>
main(void)
{
  double a;
  int i,n=1;
  for(i=3;1/i>1/1000000;i+=2)
  {
    a=1+((-1)^n)/i;
    n=n+1;
  }
  print("pi is:",4*a);
}
2008-03-04 16:56
adminis
Rank: 1
来 自:cq of china
等 级:新手上路
帖 子:39
专家分:0
注 册:2008-3-4
收藏
得分:0 
嗯..回复你们问题
对于.楼上的问题嘛..嗯..你们都有前途.都可以成为下代的李俊先生.
2008-03-04 17:18
Yuanwei4633
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-3-1
收藏
得分:0 
我也是新手编写了以下程序,希望大家帮忙看看还有什么欠缺!!!
#include "stdio.h"
void main()
{
   float a,pi;
   int i,k=-1;
   for(i=1;(1.0/i)>=0.000001;i++,i++)
   {
       a=a+1.0/i;
       a=a*k;
   }
   pi=a*4;
   printf("%f",pi);
}
2008-03-04 17:29
aos912
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-3-4
收藏
得分:0 
一种方法,运行过了,可以的。
#include<stdio.h>
void main()
         {
         int i=0;
         double x,m,n,s;
         
         for (x=3; x<100000; x=x+2)
             {
             i++;
             if((i%2) != 0)
               m=m+1/x;
               
             else
               n=n+1/x;
               }
               
             s=4*(1-m+n);
         printf("pi is %f\n",s);
         
         }
2008-03-04 23:33
olivezhang
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-9-14
收藏
得分:0 
回复 10# 的帖子
类型转换时double>float>int>char
所以a=1/(i*2+1);只能是0,只要将表达式中的任一变量或常最强制转换为double即可.如:
a = 1/((double)i*2 + 1)
a = 1/(i*2 + (double)1)
......

谷底深深行 ,峰顶漫漫步......@_@
2008-03-05 00:04
Ranyoo
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-3-5
收藏
得分:0 
[bc05] 把x和y的类型改为float试试,因为如果它们是int类型的话,1/x+4的值就会变成(int)1/5=0,m=1/(x+4)+m的值就等于0.y的道理一样.这样你计算s=4*(1+m-n)的值就是4*1=4.000000了.实际上,每个for循环只进行了一次,就是当x=1的时候循环了,当下一次x=5的时候,1/x=0了,循环条件1/x>1/1000000不满足了,就不再执行循环.y的情况类似.
[bc08] 具体的程序我没有运行,但是我认为应该是这样的.如果还是不对,自己就再想想.不难的,一开始学都这样,不太注意细节,往往会出错,以后注意就是了.
2008-03-05 10:54
花田一路
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2008-3-5
收藏
得分:0 
#include<stdio.h>
{ int i;
float s,pa=1.0;
for(i=1;i<-1;i++)
{  s=1/(i*2.0+1.0);
 if(s<=1/1000000)
break;
if(i%2!=0)
s=-s;
pa=s+pa;}
pa=pa*4;
printf("%f",pa);
 }
各位我的答案为什么是3.141568,和前几位差了点,这是不是说明我错了啊
错在哪里呢,望各位大虾指出,谢谢啊~~~[bc08]
2008-03-05 14:11
aos912
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-3-4
收藏
得分:0 
没错,无限接近的,在于取值。
2008-03-05 14:57
快速回复:才学一个星期问两个白痴点的问题.谢谢啦~~~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032348 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved