/* ejerprac2-3 */ /* GR: El operador módulo entero % implementa en hardware la funcionalidad vista en la función MOD descrita en el práctico 1. Para probarlo, supongamos que quiere imprimir una guía para saber en qué columna está una letra en la pantalla. Escriba un programa que pueda imprimir cadenas de caracteres de largo n arbitrario, formada por repeticiones concatenadas del patrón ‘‘+----’’. Por ejemplo, para n = 12 la cadena ser´ıa ‘‘+----+----+-’’. El programa debe consistir en un sólo bucle; no vale dos! */ #include #include /* argumentos son argv[1] largo */ void main(int argc, char* argv[]) { int i, largo; char inicial [] = "+----"; largo = atoi(argv[1]); printf("valor de largo: %d\n", largo); printf("valor a repetir: %s\n", inicial); if (largo > 80) { printf("valor de n excede ancho de stdout: %d\n", largo); } else { i= 0; /* sólo necesario por el prontf() */ printf("impresión tamaño %d decimal y %x hexadecimal", largo, largo); printf(" valor inicial de i: %d\n", i); for (i = 0; i < largo; i++) printf("%c",inicial[i%5]); /* i%n va a valer consecutivamente, 0, 1, 2, 3, 4, 0, 1, 2, 3,4, 0, 1........... */ printf("\n"); } } /* resultado de ejecución: uisrepetto@fedora:~/UdelarFing/PIE$ gedit ejerprac2-3.c luisrepetto@fedora:~/UdelarFing/PIE$ cc ejerprac2-3.c luisrepetto@fedora:~/UdelarFing/PIE$ ./a.out 44 valor de largo: 44 valor a repetir: +---- impresión tamaño 44 decimal y 2c hexadecimal valor inicial de i: 0 +----+----+----+----+----+----+----+----+--- luisrepetto@fedora:~/UdelarFing/PIE$ ./a.out 12 valor de largo: 12 valor a repetir: +---- impresión tamaño 12 decimal y c hexadecimal valor inicial de i: 0 +----+----+- luisrepetto@fedora:~/UdelarFing/PIE$ ./a.out 23 valor de largo: 23 valor a repetir: +---- impresión tamaño 23 decimal y 17 hexadecimal valor inicial de i: 0 +----+----+----+----+-- luisrepetto@fedora:~/UdelarFing/PIE$ ./a.out 63 valor de largo: 63 valor a repetir: +---- impresión tamaño 63 decimal y 3f hexadecimal valor inicial de i: 0 +----+----+----+----+----+----+----+----+----+----+----+----+-- luisrepetto@fedora:~/UdelarFing/PIE$ */