γγγ 发表于 2021-12-7 09:45:50

答案是1求解析

本帖最后由 γγγ 于 2021-12-7 09:51 编辑

#include "stdio. h"
int fun(int n)
{int if=1;
float m=0;
for(i=1;i<=n;i+=2)
{m=m+1/i*f;f=-f;}
return m;
}
void main()
{printf("%d",fun(1000)};

AdiosSpike 发表于 2021-12-7 10:30:17

他第一次循环i = 1
然后循环之后m = 1
第二次 i = 2
整形相除 1/2为0
之后就一直是0
所以m的值一直没变

AdiosSpike 发表于 2021-12-7 10:31:23

#include <stdio.h>
int fun(int n)
{
    int i,f=1;
    float m=0;
    for(i=1; i<=n; i+=2)
    {
      m=m+1/i*f;
      f=-f;
    }
    return m;
}
void main()
{
    printf("%d",fun(1000));
}

重新帮你写好看一点
页: [1]
查看完整版本: 答案是1求解析