olha como ficou a função para escrever no ficheiro os dados inseridos

void escreve_ficheiro(int k ,struct tipo_de_desastre_comum *registo,struct tipo_de_desastre_adicional *registo_adicional )
{
FILE *f;
if ((f=fopen("desastres.txt","w")) == NULL)
{
printf ("\nNao foi encontrado o ficheiro desastres.txt\n");
return;
}
else
fprintf(f,"%d\t%d\t%s\t%0.2f,%0.2f\t%d-%d-%d\t%d:%d\t%.2f\t%d\t%d",registo[k].tipo,registo[k].sub_tipo,registo[k].denimonacao,registo[k].latitude,registo[k].longitude,
registo[k].dia,registo[k].mes,registo[k].ano,registo[k].hora,registo[k].minuto,registo[k].danos_materiais,registo[k].danos_humanos_mortes,registo[k].danos_humanos_feridos);
if(registo[k].tipo==1 && registo[k].sub_tipo==1)
{
fprintf(f,"\t%s\t%0.2f\n",registo_adicional[k].causa_avalanche,registo_adicional[k].dimensao_avalanche);
}
else
if(registo[k].tipo==1 && registo[k].sub_tipo==2)
{
fprintf(f,"%0.2f\t%0.1f\t%d\n",registo_adicional[k].profundidade_sismo,registo_adicional[k].magnitude,registo_adicional[k].MMI);
}
else
if(registo[k].tipo==1 && registo[k].sub_tipo==3)
{
fprintf(f,"%0.2f\t%s\t%d\t%s\n",registo_adicional[k].elevacao,registo_adicional[k].tipo_vulcao,registo_adicional[k].VEI,registo_adicional[k].causa_fatalidades_vulcao);
}
else
if(registo[k].tipo==1 && registo[k].sub_tipo==4)
{
fprintf(f,"%s\t%s\t%s\n",registo_adicional[k].causa_deslizamento,registo_adicional[k].material_deslizamento,registo_adicional[k].tipo_movimento);
}
else
if(registo[k].tipo==2 && registo[k].sub_tipo==1)
{
fprintf(f,"%0.2f\t%0.2f\t%0.2f\n",registo_adicional[k].precipitacao,registo_adicional[k].duracao_precipitacao,registo_adicional[k].nivel_rio);
}
else
if(registo[k].tipo==2 && registo[k].sub_tipo==2)
{
fprintf(f,"%d\t%0.2f\t%0.2\n",registo_adicional[k].PDSI,registo_adicional[k].duracao_seca,registo_adicional[k].area_afectada_seca);
}
else
if(registo[k].tipo==2 && registo[k].sub_tipo==3)
{
fprintf(f,"%0.2f\t%0.2f\t%0.2f\n",registo_adicional[k].intencidade_calor,registo_adicional[k].duracao_calor,registo_adicional[k].dimensao_calor);
}
else
if(registo[k].tipo==2 && registo[k].sub_tipo==4)
{
fprintf(f,"%0.2f\t%0.2f\t%0.2f\n",registo_adicional[k].velocidade_vento,registo_adicional[k].dimensao_vento,registo_adicional[k].duracao_vento);
}
else
if(registo[k].tipo==2 && registo[k].sub_tipo==5)
{
fprintf(f,"%s\t%0.2f\n",registo_adicional[k].categoria,registo_adicional[k].dimensao_ciclone);
}
else
if(registo[k].tipo==3 && registo[k].sub_tipo==1)
{
fprintf(f,"%0.2f\t%s\t%s-%0.2f\n",registo_adicional[k].area_ardida_florestal,registo_adicional[k].causa_incendio,registo_adicional[k].tipo_vegetacao,registo_adicional[k].tipo_vegetacao_ha);
}
else
if(registo[k].tipo==3 && registo[k].sub_tipo==2)
{
fprintf(f,"%0.2f\t%s\t%s\t%0.2f\n",registo_adicional[k].dimensao_fogo_urbano,registo_adicional[k].causa_fogo_urbano,registo_adicional[k].tipo_infra_estrutura,registo_adicional[k].tipo_infra_estrutura_per);
}
else
if(registo[k].tipo==4 && registo[k].sub_tipo==1)
{
fprintf(f,"%s\t%s\t%s\t%d\n",registo_adicional[k].agente_epidemia,registo_adicional[k].pais_epidemia_isolamento,registo_adicional[k].pais_epidemia_origem,registo_adicional[k].numero_epidemia);
}
else
if(registo[k].tipo==4 && registo[k].sub_tipo==2)
{
fprintf(f,"%0.2f\t%d:%d\t%0.2f\n",registo_adicional[k].distancia_tsunami,registo_adicional[k].propagacao_tsunami_hora,registo_adicional[k].propagacao_tsunami_minuto,registo_adicional[k].altura_tsunami);
}
else
if(registo[k].tipo==4 && registo[k].sub_tipo==3)
{
fprintf(f,"%0.2f\t%0.2f\t%0.2f\t%s\n",registo_adicional[k].dimensao_meteorito_massa,registo_adicional[k].dimensao_meteorito_volume,registo_adicional[k].dimensao_impacto,registo_adicional[k].composicao_meteorito);
}
fclose(f);
}