注册 登录
编程论坛 C语言论坛

小白求教,为啥我做的这个代码运行后是空的

d15621307158 发布于 2020-11-09 10:39, 1460 次点击
#include<stdio.h>
int main()
{
    int a=1;
    float sum=0,i,b;
 i=1/a;
 b=(i<0)?-i:i;
    for(i=1/a;b>=1e-6;a=-(a+2))
    {
        sum=sum+i;
    }
    sum=sum+i;
    printf("%f\n",sum);
    return 0;
 }
8 回复
#2
rjsp2020-11-09 11:16
你还是把题目贴一下吧,从你的代码完全看不出你想实现什么功能
尤其是这个 a=-(a+2),它等同于 a=-2;
#3
d156213071582020-11-09 12:36
回复 2楼 rjsp
.求1-1/3+1/5-1/7+1/9+…的近似值,指导最后一项的绝对值小于1e-6。提示:所求多项式从第二项开始,每一项的分母是前一项分母加2,每一项的分子是前一项分子乘以-1。
#4
rjsp2020-11-09 13:24
回复 3楼 d15621307158
程序代码:
#include <stdio.h>

int main( void )
{
    double sum = 0;
    for( unsigned i=0; ; ++i )
    {
        sum += (1.0-i%2*2)/(2*i+1);
        if( 1.0/(2*i+1) < 1e-6 )
            break;
    }
    printf( "%f\n", sum );
}
#5
jyxiasf2020-11-09 14:07
#include <stdio.h>

int main( void )
{
    double sum = 0;
    n=1;
    for( i=3;i<1e+6; i=i+2 )
    {
        n=n*(-1);
        sum += n/(i);
     }
    printf( "%f\n", sum );
}
#6
jyxiasf2020-11-09 14:14
更正:

#include <stdio.h>

#include <stdio.h>

int main( void )
{
    double sum = 0;
    int n,i;
    n=-1;
    for( i=3;i<1e+6; i=i+2 )
    {
        n=n*(-1);
        sum = sum+n/(i);
     }
    printf( "%f\n", sum );
}
#7
d156213071582020-11-09 15:57
回复 6楼 jyxiasf
运行完是0.000000啊,答案不是这个吧
#8
d156213071582020-11-09 15:59
回复 4楼 rjsp
我刚开始学,有点看不懂这个
#9
jyxiasf2020-11-09 19:03
#include <stdio.h>
 
#include <stdio.h>
 
int main( void )
 {
     double sum,n;
     int i;
     sum=1;
     n=-1;
     for( i=3;i<1e+6; i=i+2 )
     {
         n=n*(-1);
         sum = sum+n/(i);
      }
     printf( "%f\n", sum );
 }
1