首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅在每个x步骤中显示值*

如何仅在每个x步骤中显示值*
EN

Stack Overflow用户
提问于 2014-08-08 00:00:45
回答 2查看 535关注 0票数 0

我试图完成一个程序,它计算出自然对数2,根据所需的#术语使用和多少值显示后,每x步。例如,如果用户输入6个术语,每2步显示一次,它就会有这个输出;

0.5000000000

0.5833333333

0.6166666667

而不是:

1.0000000000

0.5000000000

0.8333333333

0.5833333333

0.7833333333

0.6166666667

对于我想要做的事情,这个循环不能正确工作,我试图找出哪些调整才能使它工作。任何帮助都是非常感谢的。

代码语言:javascript
复制
    for(double x = 1; x <= numofterms; x += 1){

    logarithm += denominator * 1 / x;
    denominator = -denominator;

    int printCounter = 0;
    for(int i=1; i<=numofterms; i++) {
    printCounter++;
      if(printCounter >= displaycount) {
         cout << setprecision(10) << showpoint << logarithm << endl;
         printCounter = 0;
 }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-08 00:11:40

下面是可以这样做的代码:

代码语言:javascript
复制
int curPrintStep = displayCount;
for (int i = 1; i <= numOfterms ; i++) {
    logarithm += denominator * 1 / (double) i;
    denominator = -denominator;

    if (i == curPrintStep) {
        cout << setprecision(10) << showpoint << logarithm << endl;

        curPrintStep += displayCount;
    }
}

变量I包含算法的当前步骤,同时用于计算对数。

我设置了一个步骤计数器变量curPrintStep,该变量设置为第一个打印步骤。每次检查当前步骤是否等于打印步骤时,我都会打印对数并将curPrintStep更改为指向下一个打印步骤(通过向其添加displayCount )。

票数 0
EN

Stack Overflow用户

发布于 2014-08-08 00:13:47

您使用的是printCounter >= displaycount,这是错误的

假设printCounter为100,displaycount为20,因此您应该得到6行,但当printCounter达到20时,它将显示每一行,因此您将得到81行。

所以更好地使用printCounter % displaycount == 0 --这将只显示printCounter0,20,40,60,80,100值的行

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25194143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档