| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
paula86
Registrado: 10 Nov 2007 Mensajes: 4
| Publicado: 11/11/2007 1:14 pm | | | Título: No se porque solamente entra una vez en el for |
| Hola, tengo este trozo de codigo, que contiene un bucle for, no entiendo porque unicamente entra una vez en ese bucle, es decir al ejecutar este codigo, se muestra por pantalla esto:
Para una densidad del cuerpo de 0.1 gr/cm3 --->El volumen sumergido es 2.0 --->El empuje que ejerce el cuerpo es 1960.0 --->El cuerpo flota en la superficie
Cuando yo lo que busco es que muestre esos calculos, para densidad del cuerpo de 0.1, 0.2, 0.3, ... , 1.0, y lo que pasa es que solamente entra una vez en el bucle for, y nose porque ocurre esto.
El trozo de codigo es este:
#include <stdio.h> #include <stdlib.h> #include <conio.h>
#define gravedad 9.8
int main() { float dens_liquido; float vol_cuerpo; float vol_sumergido; float empuje; float dens_cuerpo; float peso;
printf("\nPor favor introduzca la densidad del liquido \n"); scanf("%f", &dens_liquido); printf("Por favor introduzca el volumen del cuerpo \n"); scanf("%f", &vol_cuerpo);
/*FALLA EN EL FOR, PORQUE SOLO ENTRA UNA VEZ*/
for ( dens_cuerpo=0.1; dens_cuerpo<dens_liquido+0.1; dens_cuerpo+=0.1) { printf("\nPara una densidad del cuerpo de %f gr/cm3 ", dens_cuerpo, "\n");
vol_sumergido = (dens_cuerpo/dens_liquido)*vol_cuerpo; printf("\n--->El volumen sumergido es %f \n", vol_sumergido);
empuje = vol_sumergido*dens_liquido*gravedad*100; printf("--->El empuje que ejerce el cuerpo es %f \n", empuje);
peso = vol_cuerpo*dens_cuerpo*gravedad;
if(peso>=empuje) { printf("--->El cuerpo se hunde\n"); } else { printf("--->El cuerpo flota en la superficie\n"); }
printf("\n"); system("pause"); return 0; }
}
No se si me he explicado bien, he intentado exponeros mi problema lo mejor que he podido y es que llevo toda la tarde comiendome la cabeza y sigo perdida, gracias adelantadas por vuestro tiempo. Un saludo |
| | Volver arriba | |  | Filzix
Registrado: 30 Oct 2007 Mensajes: 8
| Publicado: 11/11/2007 2:46 pm | | | Título: |
| el cierre del for esta mal tiene que ponerlo antes del printf("\n"); , por lo tanto quedaria asi.
| Código: | #include <stdio.h> #include <stdlib.h> #include <conio.h>
#define gravedad 9.8
int main() { float dens_liquido; float vol_cuerpo; float vol_sumergido; float empuje; float dens_cuerpo; float peso;
printf("\nPor favor introduzca la densidad del liquido \n"); scanf("%f", &dens_liquido); printf("Por favor introduzca el volumen del cuerpo \n"); scanf("%f", &vol_cuerpo);
/*FALLA EN EL FOR, PORQUE SOLO ENTRA UNA VEZ*/
for ( dens_cuerpo=0.1; dens_cuerpo<dens_liquido+0.1; dens_cuerpo+=0.1) { printf("\nPara una densidad del cuerpo de %f gr/cm3 ", dens_cuerpo, "\n");
vol_sumergido = (dens_cuerpo/dens_liquido)*vol_cuerpo; printf("\n--->El volumen sumergido es %f \n", vol_sumergido);
empuje = vol_sumergido*dens_liquido*gravedad*100; printf("--->El empuje que ejerce el cuerpo es %f \n", empuje);
peso = vol_cuerpo*dens_cuerpo*gravedad;
if(peso>=empuje) { printf("--->El cuerpo se hunde\n"); } else { printf("--->El cuerpo flota en la superficie\n"); }
} printf("\n"); system("pause"); return 0;
}
|
|
| | Volver arriba | |  | paula86
Registrado: 10 Nov 2007 Mensajes: 4
| Publicado: 11/11/2007 4:42 pm | | | Título: |
| Muchas gracias Filzix!!!! la aplicacion funciona perfectamente gracias a ti. Pero solo por curiosidad, que es lo que fallaba?? porque al poner estas 3 lineas de codigo
printf("\n"); system("pause"); return 0;
y despues cerrar el for, unicamente entraba una vez en el bucle?Es que no entiendo porque el cerrar el for en ese punto, se produce ese error. Gracias, y un saludo |
| | Volver arriba | |  | | rir3760

Registrado: 01 Oct 2004 Mensajes: 3770 Ubicación: Mexico
| Publicado: 12/11/2007 6:30 am | | | Título: |
| Porque dentro de una funcion la sentencia:
| Código: | return algun_valor; |
Causa la terminacion de esta y el control regresa al punto donde se llamo a la funcion, en el caso de la funcion main esta sentencia indica la terminacion del programa.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |