/* 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 */ int main(int argc, char* argv[]) { int i, j, largo; char inic [5] = "+----"; largo = atoi(argv[1]); printf("valor de largo: %d\n", largo); printf("valor a repetir: %s\n", inic); if (largo > 80) { printf("valor de n excede ancho de stdout: %d\n", largo); return -1; } i = 0; j = 0; printf("impresión guía tamaño %d, Guía ", largo); while (i < largo) { printf("%s",inic[j%5]); i++; j++; } printf("\n"); return 0; } /* resultado de ejecución: luisrepetto@fedora:~/UdelarFing/PIE$ gedit ejerprac2-3.c luisrepetto@fedora:~/UdelarFing/PIE$ ./a.out 12 valor de largo: 12 valor a repetir: +---- Violación de segmento (`core' generado) luisrepetto@fedora:~/UdelarFing/PIE$ ./a.out 81 valor de largo: 81 valor a repetir: +----Q valor de n excede ancho de stdout: 81 luisrepetto@fedora:~/UdelarFing/PIE$ ./a.out 5 valor de largo: 5 valor a repetir: +---- Violación de segmento (`core' generado) luisrepetto@fedora:~/UdelarFing/PIE$ ./a.out 6 valor de largo: 6 valor a repetir: +---- Violación de segmento (`core' generado) luisrepetto@fedora:~/UdelarFing/PIE$ */