Несколько условий в цикле - VB

Узнай цену своей работы

Формулировка задачи:

Не корректно работает счетчик в таком виде: Например при вводе: 95, 92, 92 должно получиться dt=1, st=2. Но выводится dt=3 , остальные значения по нулям. Как исправить??
Листинг программы
  1. For i = 1 To z
  2. If (a(gg) = 92) And (a(g) < p(0)) Then
  3. st = st + 1
  4. ElseIf (a(gg) = 95) And (a(g) < p(1)) Then
  5. dt = dt + 1
  6. ElseIf (a(gg) = 98) And (a(g) < p(2)) Then
  7. ft = ft + 1
  8. g = g + 3
  9. gg = gg + 4
  10. End If
  11. Next i
Спасибо!

Решение задачи: «Несколько условий в цикле»

textual
Листинг программы
  1. Sub main()
  2.  
  3. Dim m As String, a(100, 3) As String, j As Integer, i As Integer, price As String, p, z As Integer, st As Integer, dt As Integer, ft As Integer
  4.  
  5. price = InputBox("Введите цену(в копейках) на АИ-92, 95, 98 через пробел соответственно", "", "2750 2875 2940")
  6.  
  7. Dim countM As Integer
  8. countM = -1
  9. p = Split(price, " ")
  10.  
  11. z = -1
  12. Do
  13.     m = InputBox("<Компания> <Улица> <Марка> <Цена>", "Данные о АЗС", "Лукойл Акскаково 95 2250")
  14.  
  15. Dim inpArray
  16.     inpArray = Split(m, " ")
  17.     countM = countM + 1
  18.     z = z + 1
  19. For i = 0 To 3
  20.     a(z, i) = inpArray(i)
  21. Next
  22.  
  23. v = MsgBox("Добавить АЗС?", vbYesNo)
  24. Loop While v = vbYes
  25.  
  26.    
  27.  For i = 0 To z
  28.     If (a(i, 2) = 92) And (a(i, 3) < p(0)) Then
  29.         st = st + 1
  30.     ElseIf (a(i, 2) = 95) And (a(i, 3) < p(1)) Then
  31.         dt = dt + 1
  32.     ElseIf (a(i, 2) = 98) And (a(i, 3) < p(2)) Then
  33.         ft = ft + 1
  34.     End If
  35.  
  36. Next i
  37. MsgBox "Количество АЗС, продающих дешевле всего 92-й, 95-й и 98-й бензин соответственно" & vbCr & st & " " & dt & " " & ft
  38. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.308 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы