【问题标题】:For loop not showing correct count when outputting, showing up number too high in C++For循环在输出时未显示正确的计数,在C++中显示的数字太高
【发布时间】:2025-12-25 23:25:11
【问题描述】:

我无法在我的 for 循环中显示正确的计数。它适用于我以前的代码,但是当我使用这个代码时,计数太大了。我想要做的是让我的 for 循环计算输入的数字并在每次运行时减去该数字。例如:

当我使用此代码输入 50 时:

double change; //input variable for change
cin >> change;

//for loop for 50 dollar bills
for (int fif = change; fif >= 50; fif -=50)
{
 b++; //this is the count variable
 change = fif - 50;
} 

if (b == 1)
cout << b << " $50 bill\n";
else
cout <<"";

cout << change; //output the change variable after loop

结果会输出:

1 50 dollar bill
0.00

但是,当我更改数字以匹配 20 美元的钞票时,我的代码如下所示:

  //for loop for twenty dollar bills
 for (int twen = change; twen <= 40 && twen >=20 ; twen -=20)
{
 c++; //count variable
 change = twen - 20;
} 

if (c == 1)
cout << c << " $20 dollar bill\n";
else if (c > 1)
cout << c << " $20 dollar bills\n";
else
cout << "";

cout << change;

并且输出数量总是随着输出的计数而变化。例如,如果我输入 40:

32661 $20 dollar bills
0.00

知道我做错了什么吗?

【问题讨论】:

  • 你将c声明为int c = 0吗?
  • 等一下,你是在初始化 b = 0 和 c = 0 吗?我没有看到这些计数变量的任何初始化。其次,您没有指定 20 美元钞票示例的输入内容。
  • 顺便说一下,请阅读:minimal reproducible example。将帮助您解决下一个问题。

标签: c++ for-loop count output


【解决方案1】:

您的计数变量似乎未初始化。变量可以通过运气从 0 开始存在(好运或坏运,取决于您的态度)。或者他们可以从一个看似随机的值开始。在任何情况下,您都不能依赖int 变量的初始值。

【讨论】:

    最近更新 更多