elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programa en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa en C  (Leído 1,507 veces)
MartaR95

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Programa en C
« en: 22 Diciembre 2017, 05:45 am »

Hola! Hoy he estado haciendo un ejercicio de lenguaje c relacionado con el tema de los ficheros. A pesar de que el programa se ejecuta, no ha salido bien, practicamente muestra por pantalla el contenido del archivo de texto, no muestra el calculo de la media ni nada.  Podeis echarme una mano?? Gracias! :) Os dejo aqui el enunciado y mi programa:


La Unión Europea quiere recolectar datos sobre pacientes ingresado con síntomas de la gripe A. Por esto, cada hospital debe enviar un archivo de texto con los datos relativos a la medida de la temperatura de los pacientes al momento del ingreso.

Los ficheros deberán de tener una estructura establecida por la Unión Europea. Un ejemplo de tal fichero es el siguiente:
#Archivos con medidas de temperaturas de pacientes sanos y con gripe A #origen: Hospital Virgen Macarena, Sevilla, Spain #BEGIN DATA A FLUE #números de medidas pacientes con gripe A #other comments NUMBER SAMPLES 8 36.5 38.9 39 38.2 37.6 40 38.2 39.3 HEALTHY #números de medidas pacientes sanos NUMBER SAMPLES 6 36.3 36.7 35.9 36.3 36.4 36.2 #END OF DATA
Las líneas que empiezan por # son comentarios. La línea siguiente a la línea que contiene la frase “NUMBER SAMPLES” contienen el número de medidas enviadas (por ejemplo 8 en el caso del ejemplo de pacientes con gripe A). A continuación se encuentran los datos (fíjese que hay 8 números reales separados por espacios).
Escriba un programa que lea un fichero en este formato, y calcule la media de los pacientes sanos y de los pacientes con gripe A, imprimiendo por pantalla el resultado.

Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TAM 100

float calcula_media(float [],int);

void main()
{
    FILE*fp;
    char cad[TAM];
    char nombre_patologia[TAM];
    int numero_pacientes;
    int i;
    float media_temperaturas;
    fp=fopen("datos_hospital.txt","r");
    if(fp==NULL) {
        printf("Cannot open file.\n");
    }
    else {
        //Esquema de recorrido
        fgets(cad,TAM,fp);
        while(!feof(fp)){
        //Procesamiento
            if(cad[0]!='#'){
                if(strcmp(cad,"NUMBER SAMPLES")==0){
                    fscanf(fp,"%d",&numero_pacientes);
                    float temperaturas[numero_pacientes];
                    for(i=0;i<numero_pacientes;i++){
                        fscanf(fp,"%f",&temperaturas[i]);
                    }
                    media_temperaturas=calcula_media(temperaturas,numero_pacientes);
                    printf("La temperatura media es:%f",media_temperaturas);
                }
                else{
                    strcpy(nombre_patologia,cad);
                    printf("El nombre de enfermedad es: %s",nombre_patologia);
                }
            }
            fgets(cad,TAM,fp);
        }

        fclose(fp);
    }
}

float calcula_media(float temperaturas[],int numero_pacientes){
    int i;
    float media=0;
    for(i=0;i<numero_pacientes;i++){
        media=media+temperaturas[i];
    }
    media=media/numero_pacientes;
    return media;
}


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Programa en C
« Respuesta #1 en: 22 Diciembre 2017, 12:45 pm »

Estructura bien el ejemplo del archivo, sino no hay forma de entenderlo. Bueno, sí la hay, pero da pereza.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines