使用 c++ 时,cout 在我的代码中不起作用

问题描述 投票:0回答:2

任何人都可以帮我解决这个代码吗?我不知道为什么 cout 不起作用,并且它没有显示第 14 行中的 (i - 1);

问题是: Joe 有 240 分钟的时间来做考试。第一个问题需要 5 分钟时间,第二个问题需要 10 分钟等等。考试后他需要 k 分钟吃晚饭。现在我们想知道他能做多少个问题。 n 是问题数,k 是吃晚饭的时间。

 #include <iostream>

using namespace std;

int main()
{
    int i, n, k, sum = 0;
    cin >> n >> k;
    for(i = 1; i <= n; i++){
        if(sum <= 240 - k){
            sum += 5 * i;
        }
        else{
            cout << i - 1;
            break;
        }
    }
}
c++
2个回答
0
投票

cout 已缓冲。

i
可能会确实出现,只是不在您正在寻找的位置:就在下一个提示之前,因为您没有发送换行符。

cout << i - 1 << '\n';

您可能还会看到:

cout << i - 1 << endl;

这里,

endl
是换行符加指令。当插入到 ostream 中时,if 会导致刷新,强制写入所有挂起的输出。当您需要在一台设备上交错缓冲区时,例如将标准输入和标准输出发送到同一文件或终端时,这会很方便。


0
投票

因为存在像 n = 5 和 k = 10 这样的情况,其中

sum
无法达到实际打印的阈值。我不确定你想做什么,但循环打印可能会有所帮助。

#include <iostream>

using namespace std;

int main()
{
    int i, n, k, sum = 0;
    cin >> n >> k;
    for(i = 1; i <= n; i++){
        if(sum <= 240 - k){
            sum += 5 * i;
        }
        else{
            break;
        }
    }
    cout << i - 1;
}
© www.soinside.com 2019 - 2024. All rights reserved.