936241151 发表于 2020-11-1 11:10:50

帮帮小白吧

#include<stdio.h>
int main(){
    int m,a;
    double s;
    scanf("%d",&m);
    if(m%2<1){
      for(s=0,a=2;a<=m;a=a+2){
            s=s+1/(a-1)-1/a;
            printf("%.6f",s);
            exit(0);
      }
    }
       else if(m%2>0){
         for(s=0,a=1;a<=m;a=a+2){
               s=s+1/a-1/(a+1);
         }
         s=s+1/(a+1);
         printf("%.6f",s);
         exit(0);
       }
   return 0;   
}
我怎么样保证它输出的数是没有被整体约分的数呢,我输入3,他总是输入1.000000

jackz007 发表于 2020-11-1 12:29:54

       你的意图是什么,把你的算法扼要描述一下好吗,最好同时给出样例。

936241151 发表于 2020-11-1 12:53:14

jackz007 发表于 2020-11-1 12:29
你的意图是什么,把你的算法扼要描述一下好吗,最好同时给出样例。

就是计算s=1-1/2+1/3-1/4+.......+1/m    当输入3的时候 输出0.833333

jackz007 发表于 2020-11-1 13:08:47

#include <stdio.h>

int main(void)
{
      int d , k , m                                                      ;
      double s                                                             ;
      scanf("%d" , & m)                                                    ;
      for(s = 0 , d = 1 , k = 1 ; k <= m ; d = -d , k ++) s += 1.0 * d / k ;
      printf("%lf\n" , s)                                                ;
}

936241151 发表于 2020-11-1 13:39:29

jackz007 发表于 2020-11-1 13:08


{:10_275:}那能帮我看下,我内个还能抢救么

jackz007 发表于 2020-11-1 13:41:56

936241151 发表于 2020-11-1 13:39
那能帮我看下,我内个还能抢救么

      不能,我的不就是你的吗?

风过无痕1989 发表于 2020-11-1 16:51:38

本帖最后由 风过无痕1989 于 2020-11-1 19:30 编辑

我也写了一个,却没有办法调试

#include <stdio.h>

int main()
{
    int k,N;
    double s = 0,j = 1.0,o = -1.0;
    scanf("%d",&N);               // 要求多少项
    for (k = 1; k <= N; k++)
    {
          if(k % 2 != 0)         // 该项为奇数项
          {
                s += j / k;
          }
          else if(k % 2 == 0)    // 该项为偶数项
          {
                s += o / k;
          }
    }
    printf("数列前 %d 项和 s = %.6lf\n", N,s);
    return 0;

}

风过无痕1989 发表于 2020-11-1 16:58:45

兄弟,去处理一下这个帖子嘛

https://fishc.com.cn/thread-183241-1-1.html
页: [1]
查看完整版本: 帮帮小白吧