无法实现do-while循环所需的输出
Cannot achieve desired output of do-while loop
我希望我的代码列出计算,后面跟着一个=,然后是最终答案,但我不确定如何做到这一点。按照我现在编写代码的方式,输出在最后一次迭代和等号之间打印一个额外的加号。下面是代码的正文,如有帮助,我们将不胜感激。
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 << " + ";
}
这样可以确保在最后一次迭代时不会打印+。
这基本上只是打印+
作为列表中项目之间的分隔符。对于这种情况,您通常需要做以下两件事之一:
- 弄清楚这是否是第一次迭代。如果不是,请在项目之前打印分隔符
- 弄清楚这是否是最后一次迭代。如果不是,请在项目后面打印分隔符
在这两者之间做出选择很大程度上取决于你。我倾向于选择前者,但有些人更喜欢后者,而且(尽管他们显然错了)这是一个完全合理的选择。
相关文章:
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 而循环:简单的除法程序输出零,不明白为什么
- 为什么即使使用 for 循环遍历我的向量,它也没有输出到控制台?(C++)
- 如何在 c++ 中使用 for 循环输出矢量中的所有对象
- 我将如何保存此 for 循环的输出
- 该程序没有产生输出,而是卡在一个循环中,几秒钟后消失并打印被杀死?
- 循环C++不同的输出
- 在控制台上输出我从文件中读取的整数,将程序插入无限循环
- 创建一个循环,该循环将输出大于零且小于 60(不包括 60)的所有 5 的倍数
- 为什么当 while 循环中的 if 条件变为 false 时,我的函数不输出最后一条语句?
- 当输出达到某个值时,如何在 c++ 中中断计数器循环
- 尝试使用嵌套的 for 循环进行某些输出
- 循环内控制台中的输入和输出
- while 循环中的流输出文件() 通常生成空文件
- C++,程序输出无效输入,但继续通过循环
- 当我在循环内打印变量时无限输出
- 如何水平排列程序的打印输出循环而不重复