当前位置: 代码迷 >> C语言 >> i=(i>0)?:(-1)*(i+2):(2-i),有错吗?
  详细解决方案

i=(i>0)?:(-1)*(i+2):(2-i),有错吗?

热度:210   发布时间:2006-02-18 19:19:00.0
i=(i>0)?:(-1)*(i+2):(2-i),有错吗?

main()
{
int i;
i=1;
double j,pi;
j=1/i;
pi=0;
for(;(fabs(j)>0.000001);ii=(i>0)?:(-1)*(i+2):(2-i))
pi=pi+j;
scanf("pi=%lf",4*pi);
}
出多就在i=(i>0)?:(-1)*(i+2):(2-i)的第二个正括号,我的本意是想i=1,-3,5,-7。。。。。。。。

搜索更多相关的解决方案: double  

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

----------------解决方案--------------------------------------------------------
多了一个冒号
条件操作符是
x= 关系式?a:b
----------------解决方案--------------------------------------------------------
他的本意是i=1,-3,5,-7。。。。。。。。是不是想好几个冒号?这样不行吧~楼下给解释解释
----------------解决方案--------------------------------------------------------
faint,不理解你的意思
(?:)是个操作符,不可能多出一个或几个冒号.

他的错误就是多了一个冒号
楼主你发贴前看看编译错误的提示就明白了,请多注意编译时错误
----------------解决方案--------------------------------------------------------
楼上的是对的,以后注意点就行了
----------------解决方案--------------------------------------------------------

根据楼主的思路作如下更改,达到了你的目的。
main()
{
double i=1;
double j;


for(j=0;printf("%lf,",i),j<3;j++)
i=(i>0)?(-1)*(i+2):(2-i);
getch();
}
这样就行了,


----------------解决方案--------------------------------------------------------
main()
{
int i;
double pi;
i=1;
pi=0;
for(;(fabs(1/i)>0.000001);i=(i>0)?(-1)*(i+2):(2-i))
pi=pi+1/i;
printf("pi=%lf",4*pi);
}
求PI=4*(1-1/2+1/3-.........)
修改过以后结果运行下来为4


我拆开编了个这个,估计毛病在这里,i>2结果都为0
main()
{
int i;
double pi;
i=2;
pi=1/i;
printf("pi=%lf",pi);
}

刚开始学好辛苦啊,小东东整死人啊
----------------解决方案--------------------------------------------------------
  相关解决方案