com imprimir varibles varias veces

Iniciado por Drewermerc, 10 Abril 2014, 16:40 PM

0 Miembros y 2 Visitantes están viendo este tema.

Drewermerc

#10
hola noele1995.
muchas gracias por responder.

hola leosansan.
muchas graciaspor responer y bueno voy a tratarte de explicar el codigo y si me equivoco en algo espeor me corrigas.



/*se captura el numero por ejemplo 5 */
scanf.....sign..............
/*iniciamos una variable tipo array llamada signo la cual  tendra un 6 espacios de memoria  */
char signo[sign+1];

/* Aqui se  analiza cada espacio de memoria y se remplaza por el signo # */
for (i = 0; i <= sign; i++)
signo[i]='#';

/* como todo los espacios del array tienen el signo # se nesessita que el programa sepa donde termina  y por eso en el espacio 6 se cambia por  \0 */
signo[i]='\0';

for (i = 0; i <=sign; i++)

/* Aqui se dividen asi  las especificaciones de imprecion  en el primero le decimos que se imprimira 5 veces el  carcater ' ', despues que se imprimira 1 ves el signo #, despues le decimos que se imprimira un caracter y sera el caracter ' ' y por ultimo  volvemos a imprimir el signo una vez y asi susesibamente dependiendo de como va incrementado i */

/*lo que no entiendo es porque en unos usas .* y en otros solo * espeor que me puedas aclarar esa duda*/
printf(" %*c   %.*s     %*c    %.*s     \n", sign+1-i, ' ', i, signo, 1, ' ', i, signo);



bueno de nuevo muchas gracias por responer  y si me euivo con algo o confundo terminos haganmelo saber.
y bueno ya por ultimo nose si me podrias decir como se llama la tabla de carcateres especiales donde viene.
\n valor 10 y asi susesivamente es que ya no la encuentro.

rir3760

Cita de: Drewermerc en 11 Abril 2014, 03:37 AMlo que no entiendo es porque en unos usas .* y en otros solo *
Se utiliza el asterisco para evitar usar un valor entero directamente, en su lugar este se toma de la lista de argumentos. Por ejemplo en la llamada:
printf("%*c\n", 3, 'X');
El carácter 'X' se imprime en un campo de tres caracteres de ancho.

Con el especificador de formato "%s" se puede utilizar la forma "%N.Ms", donde "N" indica la anchura del campo y "M" el numero máximo de caracteres a imprimir (por supuesto siempre y cuando no se encuentre antes el '\0'). Por ejemplo la llamada:
printf("%*.*s\n", 5, 3, "abcde");
Imprime como máximo los tres primeros caracteres de la cadena (en este caso "abc") en un campo cuya anchura es de cinco caracteres.

Cita de: Drewermerc en 11 Abril 2014, 03:37 AMnose si me podrias decir como se llama la tabla de carcateres especiales donde viene. \n valor 10 y asi susesivamente es que ya no la encuentro.
Supongo te refieres a ASCII

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

Drewermerc

hola rir3760.
Bueno entonces si se usa el asterisco no importa cuantos caracteres se imprimiran y cuando se usa *.* se limita el ancho y no se pueden imprimir mas de lo lo asignado al ancho.
gracias por tu respuesta y si es esa tabla nada mas que yo la habia encontradocon los simbolos para ya no leer y  rapido identificarlos con la simbologia pero gracias me servira.

leosansan

Cita de: Drewermerc en 11 Abril 2014, 06:17 AM
....................................
si es esa tabla nada mas que yo la habia encontradocon los simbolos para ya no leer y  rapido identificarlos con la simbologia pero gracias me servira.



Al final de la página encuentras el enlace a los 127 primeros caracteres o tabla no extendida de ASCII.

Drewermerc

gracias leosansan si es esa con la simbologia y gracias de nuevo a todo lo que me ayudaron saludos.