2012-05-11 2 views
0
Public Function insert(x As Integer) 
    If front = 0& & rear = n - 1 Or rear + 1 = front Then 
    MsgBox "queue FULL !!!", vbOKOnly, "QUEUE" 
    ElseIf front = -1 Then 
    front = rear = 0 
    ElseIf rear = n - 1 Then 
    rear = 0 
    Else 
    rear = rear + 1 
    End If 
    arr(rear) = x 
    MsgBox x, vbOKOnly, "INSERTED" 
    List1.AddItem x 
End Function 

Это вставка() круговой очереди. Я получаю сообщение об ошибке «Если фронт = 0 & & задний = n - 1 Или задний + 1 = передний Тогда«
ошибка «Ошибка выполнения» 13-разрядное несоответствие типа ».Реализация круговой очереди в visualbasic6

ответ

0

Это также wron г

front = rear = 0 

Должно быть

front = 0 
rear = 0 

= имеет два значения в VB6

  • = оператор равенства, так же, как == в С-подобный язык
  • = также является статутом назначения nt, как и оператор = на c-языке
1

Я думаю, что вы имели в виду

If front = 0& & rear = n - 1 Or rear + 1 = front Then 

быть

If front = 0 And rear = n - 1 Or rear + 1 = front Then 

и вы, вероятно, на самом деле имел в виду

If (front = 0 And rear = n - 1) Or rear + 1 = front Then 

и вы смешивания ваш "х" и "N"

+0

Возможно, он также не хотел использовать VB6. * Дрожь * О, хорошо, вы знаете, что я всегда говорю: «С жизнью, как с VB6: по ошибке, возобновите дальше». – aquinas

+0

да проблема запущена .... Но теперь я получаю сообщение об ошибке «arr (rear) = x» Ошибка: «Подстрочный вне диапазона» – rick

+0

, очевидно, ваш массив arr меньше, чем задний – Gratzy

Смежные вопросы