无法实现do-while循环所需的输出

Cannot achieve desired output of do-while loop

本文关键字:输出 循环 实现 do-while      更新时间:2023-10-16

我希望我的代码列出计算,后面跟着一个=,然后是最终答案,但我不确定如何做到这一点。按照我现在编写代码的方式,输出在最后一次迭代和等号之间打印一个额外的加号。下面是代码的正文,如有帮助,我们将不胜感激。

int main()
{
double fraction = 0.0, numerator = 0.0, n, denominator = 0.0;
    do
    {
        numerator = numerator + 1;
        denominator = n;
        --n;
        fraction = fraction + (numerator / denominator);
        cout << numerator << "/" << denominator << " + ";
    }
    while (denominator > 1); 
    cout << " = " << fraction << endl;
    return 0;
}

您只需要更改这一行

cout << numerator << "/" << denominator << " + ";

cout << numerator << "/" << denominator;
if (denominator > 1) {
  cout << " + ";
}

这样可以确保在最后一次迭代时不会打印+。

这基本上只是打印+作为列表中项目之间的分隔符。对于这种情况,您通常需要做以下两件事之一:

  1. 弄清楚这是否是第一次迭代。如果不是,请在项目之前打印分隔符
  2. 弄清楚这是否是最后一次迭代。如果不是,请在项目后面打印分隔符

在这两者之间做出选择很大程度上取决于你。我倾向于选择前者,但有些人更喜欢后者,而且(尽管他们显然错了)这是一个完全合理的选择。