【发布时间】:2021-11-10 17:54:39
【问题描述】:
我遇到了这个问题,我想从我正在读取的文件中获取最大和最小值的 id。该文件还包含其他信息。我成功地识别出最大值,但最小值只是被设置为读取的最后一个值,这不是文件中的最小值。这是代码
largestId = 0;
smallestId = 99999;
while(theFile >> firstName >> lastName >> id)
{
if(id > largestId){
largestId = id;
}else if(id < smallestId){
smallestId = id;
}
}
【问题讨论】:
-
为什么要使用 else if?这两个条件不应相互依赖。
-
-
你是说
if(id > largestId){ largestId = id;} if(id < smallestId){ smallestId = id; }不起作用? -
想想 id 1 和第一次迭代。它既大于
largestId又小于smallestId,但你只设置了前者。你得到最后一个数字是你特定输入的产物。 -
largestId = std::max(largestId, id);比if更清晰。
标签: c++ visual-c++ c++17