Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- #define MAXSIZE 11
- #define MAX 150
- double getFirst(char *buffer){
- char *ret;
- int s=1;
- int i=0,r;
- while(buffer[i] != ','){
- if(buffer[i]=='-')
- s=-1;
- if(buffer[i] != '(' && buffer[i]!= '-')
- ret[i] = buffer[i];
- i++;
- }
- r = atoi(ret);
- return (r*s);
- }
- double getSnd(char *buffer){
- char *ret;
- int i=0,s=1;
- float r;
- while(buffer[i] != ')'){
- while(buffer[i] != ',')
- i++;
- if(buffer[i]=='-')
- s=-1;
- ret[i]=buffer[i];
- i++;
- }
- r = atoi(ret);
- return (r*s);
- }
- double haversine(char *buffer){
- double d = abs(getFirst(buffer) - getSnd(buffer));
- return (2*asin((sqrt(d))));
- }
- void printIT(double *nums,char *buffer[MAXSIZE]){
- int i,j,aux;
- char auxc[MAXSIZE];
- for(i=0,j=1;j<MAX;j++){
- if(nums[i]<nums[j])
- j++;
- else{
- aux=nums[i];
- nums[i]=nums[j];
- nums[j]=aux;
- strcpy(auxc,buffer[i]);
- buffer[i]=buffer[j];
- buffer[j]=auxc;
- }
- }
- for(i=0;i<MAX;i++){
- printf("%s\n",buffer[i]);
- }
- }
- int main (){
- int i=0;
- FILE *f;
- double num[MAX];
- char *city[MAXSIZE];
- char buffer[MAXSIZE],nome[MAXSIZE]="input.txt";
- f=fopen(nome,"r");
- while(fgets(buffer,MAXSIZE,f) != NULL){
- strcpy(city[i],buffer);
- printf("%s",buffer);
- num[i]=haversine(buffer);
- i++;
- }
- printIT(num,city);
- fclose(f);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement