Несколько условий в цикле - VB
Формулировка задачи:
Не корректно работает счетчик в таком виде:
Например при вводе: 95, 92, 92 должно получиться dt=1, st=2. Но выводится dt=3 , остальные значения по нулям. Как исправить??
Спасибо!
Листинг программы
- For i = 1 To z
- If (a(gg) = 92) And (a(g) < p(0)) Then
- st = st + 1
- ElseIf (a(gg) = 95) And (a(g) < p(1)) Then
- dt = dt + 1
- ElseIf (a(gg) = 98) And (a(g) < p(2)) Then
- ft = ft + 1
- g = g + 3
- gg = gg + 4
- End If
- Next i
Решение задачи: «Несколько условий в цикле»
textual
Листинг программы
- Sub main()
- 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
- price = InputBox("Введите цену(в копейках) на АИ-92, 95, 98 через пробел соответственно", "", "2750 2875 2940")
- Dim countM As Integer
- countM = -1
- p = Split(price, " ")
- z = -1
- Do
- m = InputBox("<Компания> <Улица> <Марка> <Цена>", "Данные о АЗС", "Лукойл Акскаково 95 2250")
- Dim inpArray
- inpArray = Split(m, " ")
- countM = countM + 1
- z = z + 1
- For i = 0 To 3
- a(z, i) = inpArray(i)
- Next
- v = MsgBox("Добавить АЗС?", vbYesNo)
- Loop While v = vbYes
- For i = 0 To z
- If (a(i, 2) = 92) And (a(i, 3) < p(0)) Then
- st = st + 1
- ElseIf (a(i, 2) = 95) And (a(i, 3) < p(1)) Then
- dt = dt + 1
- ElseIf (a(i, 2) = 98) And (a(i, 3) < p(2)) Then
- ft = ft + 1
- End If
- Next i
- MsgBox "Количество АЗС, продающих дешевле всего 92-й, 95-й и 98-й бензин соответственно" & vbCr & st & " " & dt & " " & ft
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д