做而做行不通

Do-while won't work

本文关键字:行不通      更新时间:2023-10-16

我的循环不工作

#include <iostream>
using namespace std;
int main()
{
int a,b,c;
cin >> a >> b;
do
{
    c=a-b;
}
while(c>=b);
cout << c;
}

当我输入5和3时,它起作用,但当我尝试输入一个更大的数字,如61和3,它不起作用。没有输出。

您正在进行

c = a - b;

而不改变ab。所以在第二个例子中,c总是等于58,后者大于b == 3,所以循环永远不会退出。

不幸的是,我不能告诉你如何修复这个问题,因为你没有说明这个代码应该做什么

插入行'cin>>a>>b;'进入循环do while。如果不是,循环就没有意义,你应该通过一个条件来改变它。

无论循环执行多少次,a、b、c的值都不会改变。在c(a-b(大于或等于b的情况下,循环从不退出。这就是为什么对于a=61和b=3没有得到输出的原因。