[ Foro de C ]

no puedo hacer que funcione

29-Oct-2022 05:00
Invitado (luu22)
1 Respuestas

Hola buenas, me podrian ayudar con este codigo no logro que funcione.

/*
Programe una funcion que recibe los datos de un archivo de clima, y devuelva cuantos dias
llovio menos de x mm, y cuantos dias llovio x mm o mas que x mm, en el anio.
INPUT: fp (puntero a archivo), x (int), lluvias_menor_x (int*), lluvias_mayorigual_x (int*)  
OUTPUT: void
*/

void llovio_umbral(FILE* fp, int x, int* lluvias_menor_x, int* lluvias_mayorigual_x){
fp = fopen("datos_lluvia_temp.tsv","r");  //fp el puntero al archivo= abro(nombre del arch, modo lectura(read))
//declaro la variables de datos
int lluviasino, mesarch, dia, anio, temp1, temp2;
//declaro los contadores
int lluviamenor = 0;
int lluviamayor = 0;
//arranco el ciclo
while (feof(fp)== 0){
fscanf (fp, "%d%d%d%d%d%d",&dia, &mesarch, &anio, &lluviasino, &temp1, &temp2 );
if (lluviasino < x){
lluviamenor = lluviamenor + 1;
}
else if (lluviamayor >= x) {
lluviamayor = lluviamayor + 1;
}
}
fclose(fp); //cierro el archivo
*lluvias_menor_x = lluviamenor;
*lluvias_mayorigual_x = lluviamayor;
}


04-Nov-2022 18:11
Invitado (isidoro)

hola luu

podrías ser más especifico y decir que es lo que no te funciona,
si te da algún  error que error es, o si no hace lo que esperas,
que es lo que no hace correctamente

lo que si he visto es que en "else if (lluviamayor >= x) { "

quizás deberías comparar con "lluviasino" ya que tal como lo tienes
lluviamayor siempre valdrá 0

tal como nombras lluviasino parece que contenga si ha llovido o no
y se use como un flag
pero tal como lo usas quizás debería llamarse cant_lluvia con la
cantidad de lluvia de ese día

y tal como está el código el "else if (lluviamayor >= x) { " podría quedar
simplemente en un "else" ya que si no el menor, es mayor o igual

suerte ;-)






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)