Hi, I'm new to programming and also new to this site.
This is my code:
CODE
/* Programa que halla el área de la figura geométrica */
#include <stdio.h>
float cuatro_lados (float figura); /*Prototipo función de la figura de cuatro lados*/
float triangulo (float baseT, float alturaT); /*Prototipo función del triángulo*/
int lados;
main ()
{
printf ("Escriba el número de lados de la figura: ");
scanf ("%d",&lados);
while (lados != 3 && lados != 4)
{
printf ("Intente de nuevo: ");
scanf ("%d",&lados);
}
if (lados == 3)
{
float base, altura, area;
area = triangulo (base, altura);
printf ("El área es: %f\n",area);
}
else
{
float figura4;
float area4 = cuatro_lados (figura4);;
printf ("El área es: %f\n",area4);
}
return 0;
}
float triangulo (float baseT, float alturaT) /*Función del triángulo*/
{
float base, altura;
printf ("Escribe la base del triángulo: ");
scanf ("%f",&base);
printf ("Escribe la altura del triángulo: ");
scanf ("%f",&altura);
return (base * altura /2);
}
float cuatro_lados (float figura) /*Función de los cuatro lados */
{
int figura4;
printf ("Especifica de qué figura se trata: \n1. Cuadrado\n2. Rectángulo\nEscribe el número correspondiente: ");
scanf ("%d",&figura4);
while (figura4 != 1 && figura4 != 2)
{
printf ("Escriba el número correspondiente: ");
scanf ("%d",&figura4);
}
if (figura4 == 1)
{
float lado;
printf ("Escriba el lado del cuadrado: ");
scanf ("%f",&lado);
return (lado * lado);
}
if (figura4 == 2)
{
float base;
float altura;
printf ("Escriba la base del rectángulo: ");
scanf ("%f",&base);
printf ("Escriba la altura del rectángulo: ");
scanf ("%f",&altura);
return (base * altura);
}
}
Well, as you can probably see, it's like a first-time code... and it works

What I want to know is the following: You see at the main function that if integer 'lados' is different than 3 and different from 4, keep printing out 'Intente de nuevo' (try again). This works when printing in a different integer than 3 and 4, but when typing a letter or a float number, it fills my console saying 'Intente de nuevo' and doesn't scan again 'lados'.
I hope my problem has been proposed clearly enoght... Thanks for your help.