Demon lo que yo me refiero es a esto.
Si pongo el programa de esta manera me da un resultado erroneo.
#include <stdio.h>
int main ()
{
float basemayor,basemenor,altura,area;
area=(basemayor+basemenor)*altura/2;
printf("escriba un valor de la base mayor en metros:");
scanf("%f", &basemayor);
printf("escriba un valor de la base menor en metros:");
scanf("%f", &basemenor);
printf("escriba un valor de la altura en metros:");
scanf("%f", &altura);
printf("el area del trapecio es %f metros\n",area);
return 0;
}
Si lo pongo asi si me sale bien
#include <stdio.h>
int main ()
{
float basemayor,basemenor,altura,area;
printf("escriba un valor de la base mayor en metros:");
scanf("%f", &basemayor);
printf("escriba un valor de la base menor en metros:");
scanf("%f", &basemenor);
printf("escriba un valor de la altura en metros:");
scanf("%f", &altura);
area=(basemayor+basemenor)*altura/2;
printf("el area del trapecio es %f metros\n",area);
return 0;
}
Mi pregunta es: Que implica que lo declare en un lugar o en otro.
Espero haberme explicado bien.
Un saludo
Lo que implica es que en el primer caso las variables no están inicializadas, y aunque lo estuviesen, por ejemplo a 0, lo que estás haciendo con
area=(basemayor+basemenor)*altura/2;
es asignarle a area un valor basado en unas variables que todavía no contienen su valor real (el introducido por el usuario), por eso te da error, no importa lo que introduzca el usuario por el teclado, tu ya le has asignado un valor a area ANTES de obtenerlo por el teclado.
Y claro, en el segundo caso te funciona porque es exactamnete lo que quieres hacer, preguntas por unos valores, y DESPUÉS de obtenerlos por teclado es cuando le asignas un valor a area, que esta vez se apoya en los valores introducidos por teclado ya que has hecho esa asignación:
area=(basemayor+basemenor)*altura/2;
DESPUÉS de que las variables obtengan su valor real.
Un saludo
Edito: Se me adelantó |Demon| mientras te contestaba