Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <string.h>
- #define Q_BATALHOES 50
- #define Q_INCIDENTES 1000
- typedef struct {
- int x;
- int y;
- } coord;
- typedef struct {
- coord local;
- float raio;
- int capac;
- } batalhao;
- typedef struct {
- coord local;
- } incidente;
- batalhao lista_de_batalhoes[Q_BATALHOES];
- incidente lista_de_incidentes[Q_INCIDENTES];
- void questao01(char *arqbat, char *arqinci, int *qbat, int *qinci)
- {
- char *token,line[32];
- FILE *a_bat;
- a_bat = fopen(arqbat,"r");
- while(fgets(line,32,a_bat))
- {
- token=strtok(line," ");
- lista_de_batalhoes[*qbat].local.x=atoi(token);
- token=strtok(0," ");
- lista_de_batalhoes[*qbat].local.y=atoi(token);
- token=strtok(0," ");
- lista_de_batalhoes[*qbat].raio=atof(token);
- token=strtok(0,"\n");
- lista_de_batalhoes[*qbat].capac=atoi(token);
- *qbat++;
- }
- fclose(a_bat);
- FILE *a_inci;
- a_inci = fopen(arqinci,"r");
- while(fgets(line,32,a_inci))
- {
- token=strtok(line," ");
- lista_de_incidentes[*qinci].local.x=atoi(token);
- token=strtok(0,"\n");
- lista_de_incidentes[*qinci].local.y=atoi(token);
- *qinci++;
- }
- fclose(a_inci);
- }
- void questao02(char *arq, int qbat, int qinci)
- {
- int i,j;
- float distx,disty,tempo;
- FILE *a_saida;
- a_saida = fopen(arq,"w");
- for(i=0;i<qinci;i++)
- {
- fprintf(a_saida,"%d: ",i);
- for (j=0;j<qbat;j++)
- {
- distx=abs(lista_de_batalhoes[j].local.x-lista_de_incidentes[i].local.x);
- disty=abs(lista_de_batalhoes[j].local.y-lista_de_incidentes[i].local.y);
- if (distx+disty<=lista_de_batalhoes[j].raio)
- tempo=(distx+disty)*0.5;
- else
- tempo=-1;
- fprintf(a_saida,"%f.1 ",tempo);
- if (j==qbat-1)
- fprintf(a_saida,"\n");
- }
- }
- fclose(a_saida);
- }
- int main() {
- int qtde_bat, qtde_inci;
- questao01("batalhoes.txt", "incidentes.txt", &qtde_bat, &qtde_inci);
- questao02("saida.txt", qtde_bat, qtde_inci);
- return 0;
- }
Add Comment
Please, Sign In to add comment