Viernes 15 de Noviembre de 2024, 19:25
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Cuadro Latino
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Cuadro Latino (Leído 4342 veces)
franc
Miembro MUY activo
Mensajes: 157
Cuadro Latino
«
en:
Viernes 12 de Diciembre de 2003, 17:30 »
0
El programa se llama cuadro latino y consiste en esto:
Para N=4 :
1 2 3 4
4 1 2 3
3 4 1 2
2 3 4 1
Se supone que se debe introducir cualkier numero y te saca el cuadro latino correspondiente ( es un cuadrado de orden NxN )
alguien me puede guiar de como hacer esto ?
gracias
Tweet
albany
Nuevo Miembro
Mensajes: 3
Re: Cuadro Latino
«
Respuesta #1 en:
Sábado 13 de Diciembre de 2003, 07:08 »
0
Hola!!
Si estás en C++ se me ocurre esto, de la nada, y habría que probarlo:
cargás en un vector de la STL hasta el número y después usás un iterador(puntero a la componente que vos querés) para mostrar lo que vos querés por pantalla (o donde sea).
Si necesitás alguna ayuda mandame un mail a
albany@ciudad.com.ar
Ojalá te sirva, realmente recién vi tu mensaje y pensé en eso, no le dediqué mucho tiempo...
Flor Castagnino
mido_666
Nuevo Miembro
Mensajes: 13
Re: Cuadro Latino
«
Respuesta #2 en:
Sábado 13 de Diciembre de 2003, 12:30 »
0
Saludos, franc:
Has conseguido ya lo que te proponías? albany ya te dio unas buenas pistas.
De cualquier modo, te remito una posible solución en C, a mí me compila en gcc
sin ningún tipo de problmema, aunque soy consciente de que el codigo puede
resultar un poco enrevesado.
Nota: No te limites a copiarlo, reescríbelo a tu manera ( - ; y no dudes en decir
si le encuentras fallos.
Código: Text
#include <stdio.h>
/* Cuadro Latino */
int main(void)
{
int nummax, numcomienzo, i, j, k;
numcomienzo=1;
printf ("Introduzca N: ");
scanf ("%d", &nummax);
for (i=0;i<nummax;i++)
{
k=0;
for(j=numcomienzo;j<=nummax;j++)
{
printf ("%d ", j);
k++;
}
for(j=1;j<=nummax-k;j++)
printf ("%d ", j);
numcomienzo++;
printf ("\n");
}
return 0;
}
/*siempre puedes depurar el codigo para, por ejemplo
-comprobar la entrada del scanf
-contar numero de cifras del máximo y en el printf sacar %nd, donde n es ese numero
con lo que conseguirías alinearlo
-etc
*/
Miguel desde Soria.
-
Miguel
- On ne voit bien qu'avec le coeur
franc
Miembro MUY activo
Mensajes: 157
Re: Cuadro Latino
«
Respuesta #3 en:
Sábado 13 de Diciembre de 2003, 15:01 »
0
muchas gracias, ya lo he conseguido.
mido_666 tu codigo me ha ayudado, aunque no era lo que queria ( en verdad si pero no imprimia los numeros en el orden que yo queria ).
albany lo de los vectores, lo he intentado pero me fallaban a la hora de imprimir el cuadro.
Gracias a todos
mido_666
Nuevo Miembro
Mensajes: 13
Re: Cuadro Latino
«
Respuesta #4 en:
Sábado 13 de Diciembre de 2003, 16:33 »
0
Es cierto, franc, tienes razón; no me fijé en el orden, pensé que iban añadiendo uno.
Soy consciente además de que no es la única forma de hacerlo (también se podría comprobar el último numero que se escribió y empezar por ahí) pero también se puede añadir una variable y un par de líneas de código para solventar el problema;
sé que ya lo has solucionado tú, probablemente de otra forma diferente, pero por si a alguien le interesa el código que mande con sus arreglos correspondientes, lo adjunto aquí abajo.
Código: Text
#include <stdio.h>
/* Cuadro Latino */
int main(void)
{
int nummax, numcomienzo, i, j, k, l; /*solo necesitaba una variable mas para llevar la cuenta */
numcomienzo=1;
l=0;
printf ("Introduzca N: ");
scanf ("%d", &nummax);
for (i=0;i<nummax;i++)
{
if(l>0)numcomienzo = nummax - l +1;
k=0;
for(j=numcomienzo;j<=nummax;j++)
{
printf ("%d ", j);
k++;
}
for(j=1;j<=nummax-k;j++)
printf ("%d ", j);
printf ("\n");
l++; /*también eliminé "numcomienzo++;"*/
}
return 0;
}
Saludos, y perdona las molestias por la equivocación.
-
Miguel
- On ne voit bien qu'avec le coeur
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Cuadro Latino