2
« en: Viernes 17 de Agosto de 2007, 17:03 »
Si puedo usar Gotoxy. Lo logré resolver de la siguiente manera, quizás tu tienes una forma más elegante de solucionar le problema y se aceptarán y agradecerán las sugerencias. Y si de paso le sirve a alguien más te mando el código.
#include<stdio.h>
#include<conio.h>
const int N=7;
const int cantcar=3; /*indico el largo máximo que pueden tener los números
ejemplo 100 Cantcar=3 */
void main()
{
int r1,c1,r2,c2;
clrscr();
textcolor(10);
gotoxy(1,1);
cprintf("%c",218);
gotoxy(1,(N+(N+1)));
cprintf("%c",192);
r1=1;
/*formo la linea superior he inferior del cuadrille*/
for(c1=2;c1<=(cantcar*N+N);c1++){
gotoxy(c1,1);
cprintf("%c",196);
gotoxy(c1,(N+(N+1)));
cprintf("%c",196);
}
/*formo los angulos superior he inferior del cuadrille, del lado derecho*/
gotoxy((cantcar*N+(N+1)),1);
cprintf("%c",191);
gotoxy((cantcar*N+(N+1)),(N+(N+1)));
cprintf("%c",217);
/*formo los laterales del cuadrille*/
for(r1=2;r1<=(N+N);r1++){
gotoxy(1,r1);
cprintf("%c",179);
gotoxy((cantcar*N+(N+1)),r1);
cprintf("%c",179);
}
/*formo las lineas horizantales dentro del cuadrille*/
for(r1=3;r1<=(N+N);r1+=2){
for(c1=2;c1<=(cantcar*N+N);c1++){
gotoxy(c1,r1);
cprintf("%c",196);
}
/*uno las lineas horizontales a las verticales en el marco del cuadrille*/
gotoxy(1,r1);
printf("%c",195);
gotoxy((cantcar*N+(N+1)),r1);
printf("%c",180);
}
/*formo las lineas verticales dentro del cuadrille*/
for(c1=(cantcar+2);c1<=(cantcar*N+N);c1+=(cantcar+1)){
for(r1=2;r1<=(N+N);r1++){
gotoxy(c1,r1);
cprintf("%c",179);
}
gotoxy(c1,1);
printf("%c",194);
gotoxy(c1,(N+(N+1)));
printf("%c",193);
/*armo la Å entre las lineas que se cruzan*/
for(r2=3;r2<=(N+N);r2+=2){
gotoxy(c1,r2);
cprintf("%c",197);
}
}
gotoxy(2,2);
printf ("135");
getch();
}
saludos