2012-12-12 48 views
0

我试图找到3个不同数组中的最小值,但它不是正确的我不认为。即使它是最小的,它也不会返回中间数组。它总是为0或2.什么似乎是我的逻辑错误?C++循环数组,查找最小

int smallest; 
for(int i = 1; i < 3; i++) 
{ 
    if(queue[i].getCount() < queue[0].getCount()) 
     smallest = i; 
    else 
     smallest = 0; 
} 
+4

你比较在位置0进入,而不是循环中'队列[最小] .getCount()'的当前值。 (修正后,不要忘记在声明中正确初始化'最小')。 – jogojapan

回答

1

鉴于代码中存在错误,您很难看出您要做什么。

我会想你想要更多的东西是这样的:

int smallest = queue[0].getCount(); 
for(int i = 1; i < 3; i++) 
{ 
    if(queue[i].getCount() < smallest) 
     smallest = queue[i].getCount(); 
} 

如果你不是想最终得到的指数,尝试这样的事情:

int smallest = 0; 
for(int i = 1; i < 3; i++) 
{ 
    if(queue[i].getCount() < queue[smallest].getCount()) 
     smallest = i; 
} 
+0

对不起,我实际上得到最小队列的索引。或者其中包含最少量对象的队列的索引。 –

+1

我添加了另一个版本。 –