谁能帮我写一下这段代码?我不知道为什么cout不能用,它没有在第14行显示(i - 1);
问题是:乔有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;
}
}
}
字符串
3条答案
按热度按时间bogh5gae1#
cout是缓冲的。
i
可能会出现,只是不在你想看的地方:就在下一个提示符之前,因为你没有发送一个换行符。字符串
您还可以看到:
型
这里,
endl
是一个换行符加上一个指令。当插入ostream时,if会导致刷新,强制写入所有挂起的输出。当您需要在一个设备上交错缓冲区时,这可能很方便,例如将标准输入和标准输出发送到同一个文件或终端时。6rqinv9w2#
因为在n = 5和k = 10的情况下,
sum
无法达到实际打印的阈值。我不确定你想做什么,但打印出循环可能会有帮助。字符串
mrfwxfqh3#
代码的问题在于cout语句位于循环的else块中。这意味着只有在满足else条件时,即sum超过{240 - k}时,才会执行cout语句。如果循环在未达到该条件的情况下完成,则不会执行cout语句。
下面是您的代码的更新版本:-
字符串
注意:-cout语句不在循环内,它将在循环完成后执行