| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1440 人关注过本帖
标题:求问我哪里错了。。。总是提示n,s,i,定义错误。。。
只看楼主 加入收藏
zzh2015
Rank: 1
来 自:江苏扬州
等 级:新手上路
帖 子:32
专家分:0
注 册:2015-4-7
结帖率:90.91%
收藏
已结贴  问题点数:10 回复次数:9 
求问我哪里错了。。。总是提示n,s,i,定义错误。。。
#include<stdio.h>
int main(void)
{
    printf("Welcome!");
    int n=1;
    double i=1,s=1;
    for(n=1,i=1,s=1;(s<=0.000001)||(-s<=0.000001);n++)
    {
        if(n%2==1) s=s-1/(i+2);
        else s=s+1/(i+2);
        i=i+2;
    }
    s=4*s;
    printf("%f\n",s);
    return 0;
}
搜索更多相关主题的帖子: Welcome double 
2016-08-02 18:04
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1744
专家分:3216
注 册:2015-12-2
收藏
得分:0 
感觉你跳不出死循环,因为s<=0.000001)||(-s<=0.000001总是成立的除非s=0;
2016-08-02 18:10
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:4 
不存在你说的定义错误。
2016-08-02 19:06
平常心q
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:120
专家分:550
注 册:2016-3-31
收藏
得分:4 
#include<stdio.h>
int main(void)
{
    printf("Welcome!\n");
    int n=1;
    double i=1,s=1;
    for(;;n++)
    {
        if(n%2==1)
            s=s-1/(i+2);
        else
            s=s+1/(i+2);

        i=i+2;

        if ((s<=0.000001)||(-s<=0.000001))
            break;

    }
    s=4*s;
    printf("%f\n",s);
    return 0;
}

判断循环的条件放在外面
2016-08-02 19:28
zzh2015
Rank: 1
来 自:江苏扬州
等 级:新手上路
帖 子:32
专家分:0
注 册:2015-4-7
收藏
得分:0 
回复 4楼 平常心q
谢哦。。。懂了

人类的的青春真像一场梦,一种化学的疯狂方式。
2016-08-03 08:58
zzh2015
Rank: 1
来 自:江苏扬州
等 级:新手上路
帖 子:32
专家分:0
注 册:2015-4-7
收藏
得分:0 
回复 2楼 ehszt
谢谢。。。3q~

人类的的青春真像一场梦,一种化学的疯狂方式。
2016-08-03 08:58
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
“总是提示n,s,i,定义错误” ------ 估计你用的是不符合标准的编译器,扔掉TC/VC,换gcc/mingw吧

你没贴出题目要求,我只能瞎猜猜,猜不准我也没办法
程序代码:
// PI = 4*( 1/1-1/3+1/5-1/7+1/9-1/11+... )
#include <stdio.h>

int main(void)
{
    double f = 0;
    for( int t=1; t<1000000; t+=2 )
    {
        if( t%4 == 1 )
            f += 1.0/t;
        else
            f -= 1.0/t;
    }
    printf( "%f\n", 4*f );

    return 0;
}
输出是 3.141591

2016-08-03 09:28
leevi
Rank: 1
等 级:新手上路
帖 子:2
专家分:7
注 册:2016-8-5
收藏
得分:0 
定义没问题,但是源码倒是有问题
死循环了啊
2016-08-05 19:31
zhangyuzheon
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-8-5
收藏
得分:0 
呃楼主知道问题了。。。
--------------------Configuration: 1 - Win32 Debug--------------------
Compiling...
1.c
C:\Users\小小哆啦\Desktop\1.c(5) : error C2143: syntax error : missing ';' before 'type'
C:\Users\小小哆啦\Desktop\1.c(6) : error C2143: syntax error : missing ';' before 'type'
C:\Users\小小哆啦\Desktop\1.c(7) : error C2065: 'n' : undeclared identifier
C:\Users\小小哆啦\Desktop\1.c(7) : error C2065: 'i' : undeclared identifier
C:\Users\小小哆啦\Desktop\1.c(7) : error C2065: 's' : undeclared identifier
执行 cl.exe 时出错.

1.exe - 1 error(s), 0 warning(s)
这个是楼主写的第一个程序我是用的VC6的因为VC6,的C标准比较低我记得变量的申明是必须在复合语句的最开始也就是说你要先定义了变量才可以用别的函数什么的,变量的定义一定是要在最开始的.
另外表示楼主的第一个代码看不懂
2016-08-05 20:03
zhangyuzheon
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-8-5
收藏
得分:0 
呃这个是我习惯性用的方法
程序代码:
#include<stdio.h>
int main(void)
{
    
    int n=-1;
    double i=3,s=1,f=1;
    printf("Welcome!");
    while(f>=0.00000001)
    {
        f=1/i;
        i=i+2;
        s+=n*f;
        n=-n;
    }
    s=4*s;
    printf("%f\n",s);
    return 0;
}
2016-08-05 20:07
快速回复:求问我哪里错了。。。总是提示n,s,i,定义错误。。。
数据加载中...
 
   



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

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