Antes de responder, te quiero reprender...
(con buen rollo, claro).
Me obligas a dedicarle más tiempo del necesario a leer tu código, porque usa variables impersonales. Para i que hace de contador va bien, pero no para el resto. Si tus variables tienen el cometido de 'b'= mayor entonces es mejor que llames a la variable mayor o al menos max (si quieres abreviar y que a la vez se entioenda) a la variable 'c' por la misma razón podrías llamarle menor o min y por último a la matriz a podrías llamarle 'mat()', entonces es fácil de leer pués en todo momento estás leyendo el significante y el valor que se expresa en la 'fórmula'. Se dejó atrás los tiempos del VIC-20 donde la memoria eran poco más de 3kb. así que por favor no piensas que llamar a una variable max es derrochar memoria, en estos días derrochar tiempo humano es más 'pecado'
, que es lo que sucede al tener que trabajar con variables inexpresivas de su contenido...
No he mirado completamente tu código (sólo por encima), me he parado donde he visto el primer sobresalto
, tu quieres recorrer un vector para obtener el mayor y el menor, según se deduce de tu pregunta. El problema lo tienes en donde le asignas al (espera que mire quien es la variable) ya, ...donde
le asignas al menor incondicionalmente que 'c= a(i)', con lo que se destruye el valor del menor que estaba almacenado fruto de los condicionales. La solución consiste en eliminar esa línea... que es a grosso modo como que se ha metido una avispa en medio del mecanismo (iba a decir mosquito, pero dado que tenemos un usuario con ese nombre, quien sabe si pudiera sentirse atacado de alguna manera)... como ha ido a parar ahí ????, supondremos eso, ... que revoloteando... chocó con un cristal y al perder el vuelo fue a caer justo ahí...
nota: el primer 'c= a(i)' que aparece antes de 'TextBox2.Text = TextBox2.Text & " " & c', no el que está condicionado, más abajo.