鱼C论坛

 找回密码
 立即注册
查看: 1319|回复: 6

[已解决]求和

[复制链接]
发表于 2020-11-7 00:47:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
根据键盘输入的整数n,计算s,其中:
s = 1+1/3+1/5+……+1/(2*n-1)
输入有k个用例,第一行为用例个数,接下来k行,每行一个整数,表示n。
对每一个用例,根据上面公式计算s,并输出,要求保留两位小数(四舍五入)。
#include <stdio.h>

int main()
{
   
        double a,d,b,n,s,x;
        s=0;
        scanf("%lf",&a);
                for(b=1;b<=a;b++)
                {
                        scanf("%lf",&n);
                        {
                        for(d=1;d<=n;d++)
                        x=1/(2*d-1);
                        s=x+s;
                 }
                 printf("%.2f\n",s);
                       
                }
               
                 
        return 0;
}



找不出错,但是答案不对
最佳答案
2020-11-7 01:16:46
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         int d , k , m , n[256]                                                                  ;
  5.         float s[256]                                                                            ;
  6.         scanf("%d" , & m)                                                                       ;
  7.         for(k = 0 ; k < m ; k ++) scanf("%d" , & n[k])                                          ;
  8.         for(d = 0 ; d < m ; d ++) for(s[d] = 1 , k = 3 ; k < 2 * n[d] ; k += 2) s[d] += 1.0 / k ;
  9.         for(k = 0 ; k < m ; k ++) printf("n = %d , s = %.2f\n" , n[k] , s[k])                   ;
  10. }
复制代码

        编译、运行实况:
  1. D:\00.Excise\C>g++ -o x x.c

  2. D:\00.Excise\C>x
  3. 5
  4. 8
  5. 9
  6. 10
  7. 12
  8. 13
  9. n = 8 , s = 2.02
  10. n = 9 , s = 2.08
  11. n = 10 , s = 2.13
  12. n = 12 , s = 2.22
  13. n = 13 , s = 2.26

  14. D:\00.Excise\C>
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-7 01:16:46 | 显示全部楼层    本楼为最佳答案   
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         int d , k , m , n[256]                                                                  ;
  5.         float s[256]                                                                            ;
  6.         scanf("%d" , & m)                                                                       ;
  7.         for(k = 0 ; k < m ; k ++) scanf("%d" , & n[k])                                          ;
  8.         for(d = 0 ; d < m ; d ++) for(s[d] = 1 , k = 3 ; k < 2 * n[d] ; k += 2) s[d] += 1.0 / k ;
  9.         for(k = 0 ; k < m ; k ++) printf("n = %d , s = %.2f\n" , n[k] , s[k])                   ;
  10. }
复制代码

        编译、运行实况:
  1. D:\00.Excise\C>g++ -o x x.c

  2. D:\00.Excise\C>x
  3. 5
  4. 8
  5. 9
  6. 10
  7. 12
  8. 13
  9. n = 8 , s = 2.02
  10. n = 9 , s = 2.08
  11. n = 10 , s = 2.13
  12. n = 12 , s = 2.22
  13. n = 13 , s = 2.26

  14. D:\00.Excise\C>
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-7 08:27:33 | 显示全部楼层
jackz007 发表于 2020-11-7 01:16
编译、运行实况:

可以粗略的解释一下【】的作用吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-7 09:38:01 | 显示全部楼层
程序要写工整一些,自己检查错误也方便
你的程序缩进这么乱,连花括号写错位置都没发现。。。。
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int k,n,i,j;
  5.     double s;
  6.     scanf("%d",&k);        //输入k值
  7.     for(j=0;j<k;j++)
  8.     {
  9.         scanf("%d",&n);       //输入n值
  10.         s=0;                    //s赋初值为0,这个必须在循环里面,因为针对不同的n,计算s的时候都有给s赋初值为0
  11.         for(i=0;i<n;i++)
  12.             s+=1.0/(2*i+1);  //for循环,求s值
  13.         printf("n=%d,s=%.2f\n",n,s);  //输出n和s
  14.     }
  15.     return 0;
  16. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-7 09:56:59 | 显示全部楼层
西柚西柚 发表于 2020-11-7 08:27
可以粗略的解释一下【】的作用吗

还没学数组吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-7 09:57:01 From FishC Mobile | 显示全部楼层
西柚西柚 发表于 2020-11-7 08:27
可以粗略的解释一下【】的作用吗

那是数组
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-7 11:18:24 | 显示全部楼层

马上学><
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-1 11:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表