Claro, es cierto que si el vector es de tamaño 100 no puedes acceder a la posición 100 ya que la última es la 99 pero lo que se suele hacer es guardar el primer valor en la posición 0 (aunque sea un 1) y así en la 99 (entraría el último valor 100). Como es lógico, no coincide el índice con el número que vas a almacenar (por ejemplo el 1 en la posición 0 en vez de el 1 en la posición 1) pero eso se puede arreglar ajustando el código donde sea necesario usando algún <i+1> en vez de i para que todo cuadre.
De todos modos nunca he usado el Visual Basic C++ entonces igual es algo a tener en cuenta si se usa ese IDE (no voy a hablar de lo que no sé). Pero una cosa importante es que o no estoy teniendo en cuenta que sea posible ejecutar ese código o ese código desde mi punto de vista al menos tiene errores básicos como la falta de índices ya que si no usas índice diría desde mis conocimientos que accedes a la posición de memoria y creo que ese no es el objetivo. A mí al menos compilando desde una terminal de Ubuntu me salen errores de compilación con ese código.
Por lo tanto si el código no es tuyo no puedo adivinar que debería hacer ese cuarto bloque que no he descrito antes pero intento explicarte así en líneas generales: Si poner una etiqueta al código mediante:
puede hacer un salto incondicional a esa etiqueta con la orden <goto> y el nombre de la etiqueta, tal que:
por lo que cuando se ejecuta la línea del <goto> lo que se produce es un salto hacia atrás que es donde está la etiqueta.
Normalmente esto son prácticas no recomendadas en lenguajes de alto nivel al igual que evitar el uso de <break> (excepto en bloque switch) y otras más. Puedes buscar información adicional respecto a esto si te interesa saber cuales son esas instrucciones.
Y bueno para terminar lo otro que falta por analizar son simples operaciones aritmético-lógicas y de asignación que no tienen mayor misterio.
De todos modos nunca he usado el Visual Basic C++ entonces igual es algo a tener en cuenta si se usa ese IDE (no voy a hablar de lo que no sé). Pero una cosa importante es que o no estoy teniendo en cuenta que sea posible ejecutar ese código o ese código desde mi punto de vista al menos tiene errores básicos como la falta de índices ya que si no usas índice diría desde mis conocimientos que accedes a la posición de memoria y creo que ese no es el objetivo. A mí al menos compilando desde una terminal de Ubuntu me salen errores de compilación con ese código.
Por lo tanto si el código no es tuyo no puedo adivinar que debería hacer ese cuarto bloque que no he descrito antes pero intento explicarte así en líneas generales: Si poner una etiqueta al código mediante:
Código (C++) [Seleccionar]
etiqueta:
puede hacer un salto incondicional a esa etiqueta con la orden <goto> y el nombre de la etiqueta, tal que:
Código (C++) [Seleccionar]
goto etiqueta;
por lo que cuando se ejecuta la línea del <goto> lo que se produce es un salto hacia atrás que es donde está la etiqueta.
Normalmente esto son prácticas no recomendadas en lenguajes de alto nivel al igual que evitar el uso de <break> (excepto en bloque switch) y otras más. Puedes buscar información adicional respecto a esto si te interesa saber cuales son esas instrucciones.
Y bueno para terminar lo otro que falta por analizar son simples operaciones aritmético-lógicas y de asignación que no tienen mayor misterio.