Título: un par de dudas sobre codigo Publicado por: ALCales en 14 Enero 2012, 16:22 pm Hola, tengo un par de dudas rapidas haber si alguno me puede ayudar
·Si tengo dos vectores de enteros y quiero ver si son iguales, los he comparado asi: Código: if(num[0]==aleatorio[0] && num[1]==aleatorio[1] && num[2]==aleatorio[2] && num[3]==aleatorio[3]) ·Otra duda, si por ejemplo: Código: int a; ·Haciendo un programa estaba usando una estructura y funciones tb, el caso esque digamos que tenia una estructura: struct Prueba{...} Uno; pues cuando hacia la llamada de esta entre las funciones no me la reconocia, me daba errores y ya no sabia que mas cambiar y sin embargo si pongo la estructura como un vector ya si que iva struct{...}Uno[0]; por que?? xD Bueno saludos y gracias!! Título: Re: un par de dudas sobre codigo Publicado por: rir3760 en 14 Enero 2012, 17:33 pm No has indicado el lenguaje, supongo es C, ¿Correcto?
Si tengo dos vectores de enteros y quiero ver si son iguales, los he comparado asi: Para comparar dos arrays de enteros puedes utilizar la funcion memcmp (prototipo en string.h), esta recibe tres argumentos: las direcciones base de los arrays y el tercero es el numero de elementos (como caracteres).Código: if(num[0]==aleatorio[0] && num[1]==aleatorio[1] && num[2]==aleatorio[2] && num[3]==aleatorio[3]) En tu caso seria mas o menos así (N es el numero de elementos a comparar): Código
Otra duda, si por ejemplo: No es posible utilizando solo C estándar ya que si bien la función "fopen" retorna diferente de NULL cuando el archivo se abre correctamente el caso contrario (retorna NULL) no permite concluir que no existe ya que la función puede fallar por otras razones (por ejemplo falla de dispositivo).Código: int a; Tal vez haya una solución pero necesitamos que publiques el código fuente del programa. Un saludo Título: Re: un par de dudas sobre codigo Publicado por: Xandrete en 14 Enero 2012, 19:22 pm Perfectamente, lo primero se puede hacer como te dice rir3760. Si quieres programar una función tú mismo, a modo de ejercicio, puedes hacer algo así:
Código
Y utilizarla donde convenga. Por ejemplo, if (cmp(num,vec,4) Loquesea(); La ventaja de memcmp es que es más genérica y sirve para cualquier tipo de datos. Lo segundo se podría hacer, aunque no creo que de manera portable. Básicamente el problema se puede reducir a saber si un archivo existe o no. Está la librería errno.h, de la biblioteca estándar. Esta librería define un entero, errno, que toma distintos valores en función de los errores que tengan las llamadas al sistema (en caso de que no haya error, el comportamiento no está definido). El problema es que en Linux y en Windows no se definen los mismos errores en el errno, ni para las mismas situaciones (el estándar requiere sólo 3 códigos de error básicos). Bajo Linux, el código del error genérico "Not such file or directory" es el 2, aunque puedes usar la macro ENOENT también. Se puede usar una función como ésta si usas Linux. Código
Con eso puedes comprobar si un archivo existe o no (aségurate de que filename tenga un carácter '\0' al final!!). Si estás en Windows, habría que mirar qué número de errores utiliza y cómo y cuándo los modifica. Si no hay ningún código apropiado en el errno, se debería usar otra librería de este SO. Me cuesta entender tu última duda. ¿Podrías poner un código de ejemplo que lo ilustre? ¡Saludos! Título: Re: un par de dudas sobre codigo Publicado por: rir3760 en 14 Enero 2012, 21:44 pm Solo un comentario (en buen plan): la variable "b" solo "pasa la cubeta". En otras palabras no es necesaria ya que se puede utilizar la comparación directamente y al contador como bandera de estado.
Eliminando esa variable nos queda: Código
Un saludo Título: Re: un par de dudas sobre codigo Publicado por: Xandrete en 14 Enero 2012, 23:30 pm Solo un comentario (en buen plan): la variable "b" solo "pasa la cubeta". En otras palabras no es necesaria ya que se puede utilizar la comparación directamente y al contador como bandera de estado. Eliminando esa variable nos queda: Código
Un saludo Perfectamente. Lo único con lo que soy reticente es con lo de usar bucles for en búsquedas. Es una tontería, sólo es una cuestión de estilo, pero me obsesionan los temas de estilo. Si no es un recorrido uso while. Código
¡Nos vemos, jefe! |