• Miércoles 20 de Noviembre de 2024, 18:44

Autor Tema:  [Problema] Se produce un error al ingresar solo valores Positivos. WTF?  (Leído 2161 veces)

juanmautn

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
0
Hola Gente! Soy nuevo en el Site, y por lo poco que ví esta muy cool!
pero bueno, les planteo mi problema. el algoritmo este, funciona solo al ingresar valores positivos y negativos, de otra manera produce error...  :fire:

Les dejo el codigo y el enunciado, por si alguien es tan amable de decirme cual es el problema porque yo no lo encuentro.-

Enunciado: Como resultado de un experimento un laboratorio obtuvo 18 valores de temperatura, todos distintos de cero. Se debe realizar un programa para ingresar dichos valores y luego determinar e informar:
   
   a) La mayor temperatura ingresada y cual fue su número de orden durante el ingreso.
   b) Ídem para la menor temperatura.
        c) El promedio de las temperaturas negativas. Si no hubiera temperaturas negativas indicarlo con un cartel aclaratorio.


Citar
#include <stdio.h>

void main(){
int i, ordmin, ordmax, tneg=0, acum=0;
float tem, min, max, promneg;

    for(i=1;i<=18;i++){
        printf("Ingrese valor de temp. Nro %d:",i);
        scanf("%f", &tem);
            if(i==1){
                max=tem;ordmax=i;
            }
            if(i>=2){
                if(max>tem){
                    if(i==2){min=tem; ordmin=i;
                    }else
                        if(min>tem){
                        min=tem;ordmin=i;
                            if(min<0){
                                abs(min);
                                tneg=tneg+min;acum=acum+1;
                            }
                        }
                }else{
                    max=tem; ordmax=i;
                }
            }

    } promneg=(tneg/acum);
        printf("La temperatura maxima fue: %.2f y se ingreso en %d lugar\n",max, ordmax);
        printf("La temperatura minima fue: %.2f y se ingreso en %d lugar\n",min, ordmin);
           switch(tneg){
              case 0: printf("NO hubo temperaturas negativas!!\n");break;

             default: printf("El promedio de las temperaturas negativas es: %.2f\n",promneg);

            }
system("PAUSE");
}

Espero respuestas! Gracias!
« última modificación: Domingo 1 de Abril de 2012, 15:55 por juanmautn »

caperutxa

  • Miembro activo
  • **
  • Mensajes: 40
  • Nacionalidad: 00
    • Ver Perfil
Re:[Problema] Se produce un error al ingresar solo valores Positivos. WTF?
« Respuesta #1 en: Lunes 2 de Abril de 2012, 08:42 »
0
El problema, que no es problema, reside en que la variable tem está definida como float.

Si ingresas por teclado algo diferente a un número, el programa intenta asignar un carácter a una variable float, obteniendo la excepción en tiempo de ejecución.

Puedes evitarlo declarando la variable como string y al capturarla del teclado, convertirla a float en el caso que esta sea un número.
Si quieres obtener resultados diferentes no hagas siempre lo mismo.


su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re:[Problema] Se produce un error al ingresar solo valores Positivos. WTF?
« Respuesta #2 en: Martes 3 de Abril de 2012, 06:06 »
0
Otro "problema" que veo es que no incluyes stdlib.h, que es la libreria que brinda la funcion abs
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

juanmautn

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re:[Problema] Se produce un error al ingresar solo valores Positivos. WTF?
« Respuesta #3 en: Miércoles 4 de Abril de 2012, 02:20 »
0
Voy a corregirlo, y cuento que sale! gracias!!