Título: Duda con uso del "for" para almacenar caracteres y flotantes en "C" Publicado por: RicGeo en 17 Septiembre 2014, 17:55 pm Hola amigos de Elhacker.net quisiera su ayuda esta vez con el almacenamiento de caracteres y flotantes en el "for" donde tengo que almacenar varios datos : nombre y codigos .Por ejemplo:
paloer 234234.56323 2342.563 loerto 454353.4564 23423.6722 setra 43534.56754 7864.6573 Código Quisiera como utilizar o hay un comando especial como poder trabajar con estos caracteres que varian para poder trabajar con estos datos .. agradecería bastante ayuda . Saludos!!! Título: Re: Duda con uso del "for" para almacenar caracteres y flotantes en "C" Publicado por: eferion en 17 Septiembre 2014, 18:18 pm Código
Esta declaración no tiene demasiado sentido. Si pretendes almacenar dos números en cada posición de "p" tienes que declarar la variable así: Código
De esta forma, para cada p dispones de dos espacios, uno para cada numero. Ahora vamos con las cadenas: Código
Esta declaración está mal. Las cadenas de caracteres no se usan exactamente igual que el resto de "tipos nativos". Me explico: Si intentas almacenar "hola" en C necesitas (al menos) 5 bytes de memoria... si en cambio intentas almacenar "mensaje", la cantidad de memoria requerida asciende a 8 bytes. En cambio, en un int todos los números van a ocupar 4 bytes... ya estés almacenando el 0 o el 5.234.045. Dicho esto, cada cadena de caracteres es, como su propio nombre indica, una secuencia de tipo "char". Esto quiere decir que "char nombre[MAX]" únicamente te va a permitir almacenar una cadena de caracteres... cuya longitud máxima será MAX-1. Si tu idea es poder almacenar MAX cadenas de caracteres diferentes la declaración debería quedar así: Código
Esto suponiendo que cada "nombre" no vaya a ocupar más de 19 caracteres. Si miramos ahora el bucle for, tenemos: Código
Esto, como bien has indicado, está mal. Aplicando los cambios que hemos comentado anteriormente, este bucle debería lucir más o menos así: Código
Fíjate que ha desaparecido toda referencia a "MAX", lo cual tiene sentido, ya que intentamos guardar cada nombre en una posición diferente. Consejos finales: * Deberías validar que "n" se encuentra dentro del rango [1..13], ya que si te da por poner una cantidad superior vas a escribir en memoria que no te pertenece y eso te va a dar problemas. * Deberías poner a las variables nombres con significado propio, "p" o "n" no dicen absolutamente nada y eso dificulta la lectura del código. * Deberías tabular el código con criterio, mejoras la legibilidad del código. Un saludo. |