2 qq 32575047 qq_32575047 于 2016.02.14 19:34 提问

这个题目为什么第二个输入输出是对应的,而第一个输入输出不对应

本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps。
输入格式:
输入在一行中给出一个正实数eps。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。
输入样例1:
4E-2
输出样例1:
sum = 0.854457
输入样例2:
0.02
输出样例2:
sum = 0.826310#include
#include
#include
int main()
{
int i=1;
double eps;
double j=1.0,k,s=0.0;
scanf("%lf",&eps);
do
{
k=i/j;
i=-i;
j+=3;
s+=k;
}
while(fabs(k)>=eps);
printf("sum = %.6lf\n",s);
return 0;
}

3个回答

caozhy
caozhy   Ds   Rxr 2016.02.14 20:33
已采纳

lz的主要问题是最后一项的绝对值不大于给定精度eps,所以需要在相加以前判断。

qq_32575047
qq_32575047 谢谢,是的,你说的没错,必须在相加之前判断,谢谢大神的指点,已经解决了,多谢
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.02.14 19:49
 #include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int  i=1;
    double eps;
    double j=1.0,k,s=0.0;
    scanf("%lf",&eps);
    while(true)
    {
        k=(double)i/j;
        if (fabs(k)<eps) break;
        i=-i;
        j+=3;
        s+=k;
    }
    printf("sum = %.6lf\n",s);
    return 0;
}
91program
91program 回复caozhy: j 已经是 double 类型,运算时会自动转向高精度转换的。所以加(double)是脱裤子放屁多此一举!
2 年多之前 回复
91program
91program   Ds   Rxr 2016.02.14 20:18

j 已经是 double 类型,加 (double)就是脱裤子放屁多此一举!

91program
91program 回复caozhy: 你爷爷的这条回复,不是对的吗?孙子!拿出你“大牛”的气质来判断一下吧。
2 年多之前 回复
91program
91program 回复caozhy: 是的,你的这个回复是最应该被删除的!孙子!替我问儿子好!!!
2 年多之前 回复
caozhy
caozhy 请管理员删除这种无用的答案
2 年多之前 回复
91program
91program 回复91program: 这个回复是给孙子曹的,以奖励他这几天跟爷爷的回复!
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
BIOS基本输入输出系统
 BIOS:即“BasicInput/Output System”(基本输入输出系统) 1、关联硬件的程序(基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序); 2、固化”在计算机主板上的ROM中; 3、为计算机提供最底层的、最直接的硬件设置和控制,它包括系统BIOS(主板BIOS).其它设备BIOS(例如IDE控制器BIOS、显卡BIOS等)其中系
欧姆龙PLC接线时怎样区别输入输出点
OMRON plc C系列的输入通道是000-020,其实一般工程肯定扩展不到020,而且PLC也未必支持这么多的输入扩展点,输出以010开头。 不同的PLC型号,这个是不同的,比如CPM1A,2A这类小型的,输入通道是000-009,输出通道是010-0**,而且最大只能扩展输入输出点数,256点。0**中的**要根据输入输出点的情况来确定。        像CQM1H,CQM1这类的PLC
【神经网络与深度学习】卷积与反卷积
1. 卷积与反卷积 如上图演示了卷积核反卷积的过程,定义输入矩阵为 I(4×4),卷积核为 K(3×3),输出矩阵为 O(2×2): 卷积的过程为:Conv(I,W)=O反卷积的过称为:Deconv(W,O)=I(需要对此时的 O 的边缘进行延拓 padding) 2. 步长与重叠 卷积核移动的步长(stride)小于卷积核的边长(一般为正方行)时,变会出现卷积核与原始输入
标准输入、标准输出究竟是什么?
本文转自:http://blog.csdn.net/astropeak/article/details/6651747 本文将从基本原理解析标准输入,标准输出的由来(最终结论见最后). 对于一个运行的程序,不可避免地要进行某些输入输出操作,也即I/O操作.对于I/O操 作,C语言提供了一系列标准I/O函数,来完成输入输出任务. 最主要的标准I/O函数包括:fopen()(打开一个文件),
数据类型四——格式化输出和输入
一.格式化输入函数 1.      scanf函数的使用 scanf函数的一般形式:scanf(格式控制,地址表列) 格式字符说明:   %a,%A 读入一个浮点值(仅C99有效)    %c 读入一个字符   %d 读入十进制整数   %o 读入八进制整数   %x,%X 读入十六进制整数   %s 读入一个字符串,遇空格、制表符或换行符结束。   %f,%F,%e,%E,%
输入一个字符常量,输出此字符常量对应的整数值。
//File Name:Test.cpp #include using namespace std; int main() { char c; cout> c; cout
ACM学习历程2——ACM题目中常用的输入输出方式
由于ACM竞赛题目的输入数据和输出数据一般有多组(不定),并且格式多种多样,所以,如何处理题目的输入输出是对编程者最基本的要求。 (一)第一类输入:输入不说明有多少个Input Block,以EOF为结束标志。 Example1: Calculate A + B . Input:Each line will contain two integers A and B . Process to
重载输入输出运算符引用的理解
#include classcoord{ int x,y; public: coord(int i=0,int j=0) {            x=i;            y=j; } friend ostream&operator //是为了减少调用的开销,使用引用参数只需把对象的地址传进来就可以了,而不需把每个域分量逐一传进来 //而消耗内存和时间。所以不用普通的
C语言学习笔记——格式化输入输出
输入可以有三种方式:scanf(),getchar(),gets(),它们有哪些区别呢? 1.  scanf() 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。 其调用格式
字符流和字节流之间的转换以及输入输出,详细分析
/*  * 1:源:键盘录用  * 目的:控制台  * 2:需求:想把键盘录入的数据存储到一个文件中。  * 源:键盘  * 目的:文件;  * 3:需求:想要将一个文件的数据打印到控制台上  * 源:文件  * 目的:控制台  * 流操作的基本规律:  * 最痛苦的就是流对象有很多,不知道该用那一个;  * 通过两个明确来完成;  * 1:明确源和目的;  * 源:为输