[ Foro de C ]
tengo este codigo que es para indentificarcuando se coloca un numero repetido en un vector, pero no me funciona, soy nuevo en c y no se donde esta la falla
int v [VALOR];
int filtroD (int a)
{
int i, c;
for (i = 1; i < VALOR; i++) {
if (v[a] == v[i]) {
c=-1;
}
i++;
}
return (c);
}
hola santiago
- te falta definir VALOR y una función principal que use tu filtro
- como errores tienes a 'c' que si 'a' no esta en el vector, 'c' no tiene un valor definido
- todos los arrays empiezan desde el cero, por lo que hay un valor del vector que no compruebas
- incrementas la 'i' dentro del bucle ERROR (ya lo haces en el bloque for)
- cuando detectas que esta repetido deberías romper el bucle con break, si son 10 valores pasa, pero podrían ser millones de valores a comprobar
- a la función deberías enviarle los datos que necesita y no usar variables globales, están mal vistas ya que se pueden modificar en cualquier lugar, dificultan el seguimiento del flujo del programa y cargan el espacio de nombres
te paso un ej de una función parecida:
https://www.online-ide.com/gnvP0bU2IB
suerte ;-)
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)