Удалить из массива все элементы, в которых последняя цифра четная, а само число делится на нее - VB (170393)
Формулировка задачи:
Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка [-10,60]. Удалить из него все элементы, в которых последняя цифра четная, а само число делится на нее.
Вот программа которую написал.
Элементы удаляет, но заполняет остатки последними элементами. Вроде там надо что-то с UBound мутить.
Сможет кто-нибудь помочь?
Листинг программы
- Private Sub Command2_Click()
- Picture1.Cls
- n = Val(Text1)
- ReDim A(1 To n)
- For i = 1 To n
- A(i) = Int(71 * Rnd - 10)
- Picture1.Print A(i);
- Next i
- Picture3.Cls
- For i = 1 To n
- If A(i) <> -10 And A(i) <> 0 And A(i) <> 10 And A(i) <> 20 And A(i) <> 30 And A(i) <> 40 And A(i) <> 50 And A(i) <> 60 Then
- If ((A(i) Mod 2 = 0) And ((A(i) Mod (A(i) Mod 10)) = 0)) Then
- For j = i To n - 1
- A(j) = A(j + 1)
- Next j
- End If
- End If
- Next
- For j = 1 To n
- Picture3.Print A(j);
- Next
- End Sub
Решение задачи: «Удалить из массива все элементы, в которых последняя цифра четная, а само число делится на нее»
textual
Листинг программы
- Private Sub Комманда1_Click()
- Dim T
- Picture1.Cls
- n = 20 'Val(Text1)
- ReDim a(1 To n)
- Randomize
- For i = 1 To n
- a(i) = Int(71 * Rnd - 10)
- Picture1.Print a(i);
- Next i
- Picture3.Cls
- For i = 1 To n
- T = Val(Right(a(i), 1))
- If T <> 0 Then ' если последняя цифра не 0
- If Not T Mod 2 Then ' если последняя цифра не чётная
- If Abs(a(i)) Mod Abs(T) <> 0 Then ' если число не делится на последнюю цифру
- Picture3.Print a(i); ' печатаем
- End If
- End If
- Else
- Picture3.Print a(i);
- End If
- Next
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д