[英]Why aren't my if statements inside the for loops working properly?
我正在嘗試進行w3resource.com練習,並且for循環中的if語句沒有得到遵守(即使條件不正確,if語句中的代碼也在運行)。 請幫我
我已經嘗試用while循環替換for循環並且問題仍然存在。 我試圖看看我的if語句有什么問題,但我找不到任何東西。
#include <iostream>
#include <algorithm>
#include <iterator>
void findAndPrintThe3LargestElements(int array[], int arraySize)
{
int largestNumbers[] = { array[0], array[0], array[0] };
for (int nextIndexNumber = 1; nextIndexNumber < arraySize; ++nextIndexNumber)
{
if (array[nextIndexNumber] > largestNumbers[0])
largestNumbers[0] = array[nextIndexNumber];
}
for (int nextIndexNumber = 1; nextIndexNumber < arraySize; ++nextIndexNumber)
{
if (array[nextIndexNumber] > largestNumbers[1] && array[nextIndexNumber] != largestNumbers[0]);
{
largestNumbers[1] = array[nextIndexNumber];
}
}
for (int nextIndexNumber = 1; nextIndexNumber < arraySize; ++nextIndexNumber)
{
if (array[nextIndexNumber] > largestNumbers[2] && array[nextIndexNumber] != largestNumbers[0] &&
array[nextIndexNumber] != largestNumbers[1]);
{
largestNumbers[2] = array[nextIndexNumber];
}
}
std::cout << "The three largest numbers in the array are: " << largestNumbers[0] << ", " << largestNumbers[1]
<< ", " << largestNumbers[2] << ".";
}
int main()
{
int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int arraySize = std::size(array);
findAndPrintThe3LargestElements(array, arraySize);
return 0;
}
程序運行不正常,輸出錯誤的數字。
在第二個和第三個循環中,你在if
后面加上分號:
if (<condidion>);
{
<your code>
}
所以條件有空塊,並且始終執行帶代碼的塊。 它更像這樣:
if (<condition>)
; // no operation here
{ // always executed
<your code>
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.