Buenos dias. Tengo un ejercicio que consiste en mostrar un cuadrado en funcion del lado que se introduzca. El codigo que he escrito es el siguiente:
// Ejercicio 3.34: Mostrar con "*" el perimetro de un cuadrado en funcion de su lado //
#include <stdio.h>
main()
{
int lado = 0;
int horizontal = 1;
int vertical = 1;
printf("Por favor introduzca la medida del lado (entre 1 y 20): "); scanf("%d", &lado);
printf("\n");
// Si se introduce un numero erroneo //
while (lado < 1 || lado > 20) {
printf("El numero introducido no es correcto\n\n");
printf("Por favor introduzca la medida del lado (entre 1 y 20): "); scanf("%d", &lado);
printf("\n");
} // Fin while //
// Si el numero es correcto //
while (vertical <= lado) {
while (horizontal <= lado) {
if (vertical != 1 || vertical != lado){
if (horizontal != 1 || horizontal != lado){
printf("o");
horizontal++; } // fin if 2 //
else {
printf("*");
horizontal++;}
} // fin if 1 //
else {
printf("*");
horizontal++; }
} // fin while 2 //
horizontal = 1;
printf("\n");
vertical++; } // fin while 1 //
printf("\n");
system("pause");
return 0;
}
Lo que yo esperaba que saliera era, si por ejemplo introducia de lado 4, era esto:
****
*oo*
*oo*
****
Por el contrario, lo que sale es esto:
oooo
oooo
oooo
oooo
Agradeceria si alguien me pudiera decir donde esta el error, porque he estado revisandolo pero no consigo ver el fallo, ya que no veo por que solo entra en el bucle de mostrar "o" y no "*".
Muchas gracias