Autor
|
Tema: Programa en C no termina bien el ciclo (Leído 2,783 veces)
|
Xgirl12
Desconectado
Mensajes: 27
|
Hola, que tal. De nuevo ando pidiendo su ayuda para hacer funcionar bien este programa que tiene que hacer lo siguiente:
Se requiere un programa que calcule el promedio de temperaturas que registra una ciudad, las temperaturas se introducirán en grados Farenheit°F y no se conoce de antemano el número de temperaturas que el usuario introducirá.
Yo aqui doy un valor centinela de -460 para que cuando el usuario introduzca un número menor, automáticamente empiece el ciclo con la operación y me de el promedio, pero no lo hace. Aunque ponga -120, me sigue pidiendo que introduzca la temperatura. Les dejo el código que estoy usando y espero me puedan ayudar.
Es un programa sencillo, supongo, pero apenas me ando enseñando, ya llevo tiempo, espero comprendan.
/* Descripción: Calcula el promedio de las temperaturas que el usuario ingresa. */ #include<stdio.h> #include<stdlib.h> #define centinela -460
/* Función Principal*/
main () { /*Declaración de acumuladores y contadores*/ float tempF,promF, sumaF=0; int c=0;
/* Lectura de la primera temperatura */ printf ("Programa que calcula el promedio de temperaturas en grados Fahrenheit\n\n\n"); printf ("\n Ingrese la primer temperatura registrada:"); scanf ("%f",&tempF);
/* Codificación del ciclo */ while (tempF>= centinela ) {
/* Se registra la temperatura que se leyó */ c = c + 1;
/* Se acumula la temperatura en la suma */ sumaF=sumaF+tempF;
/* Se lee la siguiente temperatura */ printf ("\n\nIngrese la siguiente temperatura (si desea terminar ingrese un número menor a %d): ", centinela); scanf ("%f",&tempF); }
/* Promedio de Temperaturas Fahrenheit */ promF=sumaF/c; printf ("\nPromedio de temperaturas Celsius=%.2f\n", promF); system("pause");
return 0; }
De antemano gracias.
|
|
|
En línea
|
|
|
|
Caster
|
El problema es que -120 es mayor que -460, un numero menor que -460 seria -461 por ejemplo, y de ahi aumentando en 1 negativamente, creo que es ese tu fallo si entendi bien tu pregunta.
Saludos
|
|
|
En línea
|
|
|
|
BatchianoISpyxolo
Desconectado
Mensajes: 166
|
Disculpa, pero creo que no es bueno escoger a un número como centinela. Tu programa ya está restringido a no poder utilizar ese valor de temperatura.
Entonces habría que hacer un array de strings y conversiones, etc, etc. A tu elección.
Por lo otro, Caster tiene razón. A menos que el usuario introduzca un número en el rango [-oo, -460), el ciclo continuará.
|
|
|
En línea
|
|
|
|
Xgirl12
Desconectado
Mensajes: 27
|
Muchas gracias por sus comentarios. Y si Caster, tienes toda la razón, je, yo no se que estaba pensando cuando estaba introduciendo los números, gracias por la observación. Y BatchianoISpyxolo, estoy poniéndolo así porque todavía no se manejar los array y esas cosas, apenas estoy aprendiendo, pero de nuevo les agradezco a ambos por haber contestado. Salu2.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
no ce termina de cerrar mi programa
Programación C/C++
|
Ghalad
|
0
|
1,872
|
6 Agosto 2010, 00:37 am
por Ghalad
|
|
|
programa de matriz aver si el programa q estoy haciendo esta bien
« 1 2 »
Programación C/C++
|
eduardo17445
|
10
|
7,398
|
23 Octubre 2012, 00:11 am
por flony
|
|
|
Pasar programa de Ciclo if a for (cuadro magico)
.NET (C#, VB.NET, ASP)
|
ellandax
|
1
|
2,159
|
19 Noviembre 2013, 21:00 pm
por Eleкtro
|
|
|
Programa no entra a ciclo for
Java
|
edr89
|
6
|
3,167
|
7 Junio 2015, 08:41 am
por edr89
|
|
|
Cuando hay espacios en el ingreso del nombre el programa termina
Programación C/C++
|
matver
|
3
|
2,744
|
9 Marzo 2017, 13:14 pm
por matver
|
|