Saludos compañero, el código produce un error ya que el contador que tienes lo inicias en 1 en la linea 9 contador = 1
por tanto, cuando usas el condicional if (ingredientes[contador] == ingrediente)
la variable de ingredientes[contador]
se va a saltar el elemento que está en la posición 0 del arreglo ingredientes
esto como primer error.
Como segundo error está ese ciclo while ya que aun cuando iguales el contador a 0 contador=0
va a seguir generando un error porque el primer elemento que ingrese el usuario siempre va a entrar en el arreglo ingredientes
por tanto el contador va aumentar en 1 (el contador va a pasar de contador = 0
a contador = 1
, así que, cuando ingreses el segundo ingrediente y estés en la condición if (ingredientes[contador] == ingrediente)
los valores que toma esta condición serán: (ingredientes[1] == ingrediente) y tienes el mismo problema de antes, ingredientes[1] debe ser ingredientes[0] ya que el primer ingrediente que agregas se pone en la posición [0] del arreglo ingredientes, lo que acá hace tu código es que compara la posición[1] del arreglo de ingredientes con tu segundo ingrediente, y esta posición va a estar vacía ya que el primer ingrediente lo agregamos a la posición [0] del arreglo ingredientes. resultado, el if siempre va a ser falso porque vas a estar comparando un valor indefinido (porque en esa posición del arreglo aún no existe ningún elemento) con un "string" que contiene tu segundo, tercer, cuarto etc... "ingrediente". Los ingredientes se van a agregar así estén repetidos ya que la condición no barre adecuadamente el arreglo.
para solucionar esto se crea un ciclo for dentro del ciclo while:
de esta forma, el ciclo for
me va a barrer todo el arreglo comparando si el ingrediente está dentro del arreglo, mientras que el ciclo while se usa para pedir al usuario que ingrese ingredientes según la cantidad de ingredientes que el usuario ingresó en la variable cantidad.
Me disculpo por la extensa explicación pero no supe cómo más explicarlo jajaja, como consejo puedes buscar un programa que ejecuta paso paso cada linea de código y así entiendes mejor lo que está ejecutando tu código, de esta forma es más visual identificar el error