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


Tema destacado: ¿Eres usuario del foro? Ahora tienes un Bot con IA que responde preguntas. Lo puedes activar en tu Perfil


+  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 2,026 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:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programa que hace click en un lugar fuera del programa [c#]
.NET (C#, VB.NET, ASP)
Un usuario 1 3,244 Último mensaje 24 Octubre 2006, 22:58 pm
por SeniorX
programa de matriz aver si el programa q estoy haciendo esta bien « 1 2 »
Programación C/C++
eduardo17445 10 8,922 Último mensaje 23 Octubre 2012, 00:11 am
por flony
[Ayuda] ¿Cómo ejecutar otro programa desde mi programa de C#?
.NET (C#, VB.NET, ASP)
Zodiak98 1 9,918 Último mensaje 8 Diciembre 2013, 01:51 am
por Eleкtro
¿Como Iniciar un único programa sobre Linux (Solo el programa)? « 1 2 »
GNU/Linux
3n31ch 13 10,345 Último mensaje 28 Junio 2017, 06:46 am
por 3n31ch
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines