有人能帮我处理这段代码吗?我不知道为什么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;
}
}
}
cout被缓冲。i
可能确实出现,只是不在您要查看的位置:就在下一个提示之前,因为您没有发送换行符。
cout << i - 1 << 'n';
您还可以看到:
cout << i - 1 << endl;
这里,endl
是一条换行符加上一条指令。当插入到ostream中时,if会导致刷新,强制写入所有挂起的输出。当您需要在一个设备上交错缓冲区时,比如将标准输入和标准输出发送到同一文件或终端时,这会很方便。
因为在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;
}