jeje perdon me habia olvidado de este post.... y ya lo tenia listo hace unos dias
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
void main()
{
clrscr();
int c,x,y;
int a,a1,a2,a3;
int b[20][20]={0};
char respuesta[20];
char s='A';
while (s!='s' && s!='S')
{
textcolor(LIGHTGRAY);
gotoxy(2,2);cprintf("Introduzca un n£mero para crear el cuadrado latino");
gotoxy(2,3);cprintf("N£mero (2-19):");
fflush(stdin);
scanf("%[^\n]",respuesta);
a=atoi(respuesta);
a1=strlen(respuesta);
a2=0;
for (x=0;x<a1;x++)
{
for (y=48;y<=57;y++)
{
if (respuesta
a2++;
}
}
while ((a2!=a1) || (a>19 || a<=1) || respuesta[0]=='0')
{
gotoxy(2,5);cprintf("EL DATO INTRODUCIDO ES INCORRECTO");
gotoxy(2,6);cprintf("EL DATO TIENE QUE SER UN NéMERO NATURAL MAYOR QUE 1 Y MENOR QUE 20");
gotoxy(2,7);cprintf("PRESIONE ENTER");
getch();
clrscr();
textcolor(LIGHTGRAY);
gotoxy(2,2);cprintf("Introduzca un n£mero para crear el cuadrado latino");
gotoxy(2,3);cprintf("N£mero (2-19):");
fflush(stdin);
scanf("%[^\n]",respuesta);
a=atoi(respuesta);
a1=strlen(respuesta);
a2=0;
for (x=0;x<a1;x++)
{
for (y=48;y<=57;y++)
{
if (respuesta
a2++;
}
}
}
int z=2;
for(x=0;x<a;x++)
{
z--;
for(y=0;y<a;y++)
{
if (z>a)
z=1;
b
z++;
}
}
c=a*4/2;
int d=a/2;
clrscr();
textcolor(GREEN);
gotoxy(24,10-d);
cprintf(" CUADRADO LATINO DE ORDEN \"n\"");
gotoxy(24,11-d);
cprintf(" n = %d ",a);
for(x=0;x<a;x++)
{
textcolor(LIGHTRED);
if (x==0)
{
gotoxy(40-c,12-d+x);
cprintf("Ú");
}
if (x==a-1)
{
gotoxy(40-c,14-d+x);
cprintf("À");
}
gotoxy(40-c,13-d+x);
cprintf("³");
for( y=0;y<a;y++)
{
textcolor(LIGHTBLUE);
cprintf("%3d ",b
}
textcolor(LIGHTRED);
cprintf(" ³");
if (x==0)
{
gotoxy(40+c,12-d+x);
cprintf(" ¿");
}
if (x==a-1)
{
gotoxy(40+c,14-d+x);
cprintf(" Ù");
}
}
textcolor(YELLOW);
gotoxy(3,24);
cprintf("CONTINUAR = ENTER SALIDA = S");
s=getch();
textcolor(LIGHTGRAY);
clrscr();
}
}
Solo era de "cruzar bucles"..