任何人都可以帮我解决这个代码吗?我不知道为什么 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;
}
}
}
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;
}