[ Foro de C ]
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;
}
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.)