C/Visual C - (Urgente) Error de compilación.

 
Vista:
Imágen de perfil de Alejandro

(Urgente) Error de compilación.

Publicado por Alejandro (1 intervención) el 01/11/2014 21:26:49
Buenas, tengo un problema con un ejercicio de programación en C, adjunto imagen
practica


Necesito ayuda urgente para saber cual es el error o si lo he hecho mal.
Este es el código que he realizado.

Gracias de antemano.

--------------------------------------------------------------------------------------------------------------------------------------------------------------

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>
#include <stdlib.h>
 
#define SIZE 24
 
int main()
 
{
	float temperaturas[SIZE];
	char salir; // variable que controlará si se quiere repetir el programa
	int i=0; // contador
	float max_t=0; // variable que almacenará la temperatura máxima
	float min_t=0; // variable que almacenará la temperatura mínima
	float sum = 0; // variable que sumará todas las temperaturas
	float med_t=0; // variable que almacenará la temperatura media
	int hora_max_t = 0; // variable que almacenará la hora con la mayor temperatura
	do{
        for(i=0; i<SIZE; i++)
        {
            temperaturas[i]=0;
        }
		for(i=0; i<SIZE; i++)
		{
			printf("Introduce la temperatura de la/s %d: ", i);
			scanf("%f\n", &temperaturas[i]);
			// se van sumando todas las temperaturas introducidas
			sum = sum + temperaturas[i];
		}
		// se saca la media
		med_t = sum/SIZE;
 
		max_t = temperaturas[0];
		min_t = temperaturas[0];
		// este for comprueba las temperaturas máxima y mínima
		for(i=1; i<SIZE; i++)
		{
			if(temperaturas[i]>max_t)
			{
				max_t = temperaturas[i];
				hora_max_t = i;
			}
			if(temperaturas[i]<min_t)
			{
				min_t = temperaturas[i];
			}
		}
		// se imprimen los datos
		printf("La temperatura maxima es %f: \n", max_t);
		printf("La temperatura minima es %f: \n", min_t);
		printf("La temperatura media es %f: \n", med_t);
		printf("La hora con la temperatura mas alta es %d: \n", hora_max_t-1);
 
		// se pregunta si quiere repetirse el programa
		printf("¿Quieres salir? (q = si) \n");
		scanf("%c\n", &salir);
	   }
 
    while(salir!='q');
	system("PAUSE");
	return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

(Urgente) Error de compilación.

Publicado por JuanC (35 intervenciones) el 01/11/2014 23:51:47
creo que el error es al iniciar la máxima y la minima

max_t = temperaturas[0];
min_t = temperaturas[0];

debería ser (por ejemplo):

max_t = -100000;
min_t = 100000;

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

(Urgente) Error de compilación.

Publicado por Sergio Fisch (2 intervenciones) el 04/11/2014 20:12:58
Alejandro, tu error es no resetear la variable 'sum' en cada ciclo del bucle. Deberías hacer algo así:

sum = 0.f;
for(i=0; i<SIZE; i++) ...

Con eso deberían andar OK.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar