Advertisement
Guest User

Untitled

a guest
Feb 10th, 2016
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.70 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <math.h>
  5. #define MAXSIZE 11
  6. #define MAX 150
  7.  
  8. double getFirst(char *buffer){    
  9.     char *ret;
  10.     int s=1;
  11.     int i=0,r;
  12.     while(buffer[i] != ','){
  13.         if(buffer[i]=='-')
  14.             s=-1;
  15.         if(buffer[i] != '(' && buffer[i]!= '-')
  16.             ret[i] = buffer[i];
  17.         i++;
  18.     }  
  19.     r = atoi(ret);
  20.     return (r*s);
  21. }
  22.  
  23. double getSnd(char *buffer){
  24.     char *ret;
  25.     int i=0,s=1;
  26.     float r;
  27.     while(buffer[i] != ')'){
  28.         while(buffer[i] != ',')
  29.             i++;
  30.             if(buffer[i]=='-')
  31.                 s=-1;
  32.         ret[i]=buffer[i];
  33.         i++;
  34.         }
  35.         r = atoi(ret);
  36.         return (r*s);
  37. }
  38.  
  39. double haversine(char *buffer){
  40.     double d = abs(getFirst(buffer) - getSnd(buffer));
  41.     return (2*asin((sqrt(d))));
  42. }
  43.  
  44. void printIT(double *nums,char *buffer[MAXSIZE]){
  45.     int i,j,aux;
  46.     char auxc[MAXSIZE];
  47.     for(i=0,j=1;j<MAX;j++){
  48.         if(nums[i]<nums[j])
  49.             j++;
  50.         else{
  51.             aux=nums[i];
  52.             nums[i]=nums[j];
  53.             nums[j]=aux;
  54.            
  55.             strcpy(auxc,buffer[i]);
  56.             buffer[i]=buffer[j];
  57.             buffer[j]=auxc;
  58.         }
  59.     }
  60.     for(i=0;i<MAX;i++){
  61.         printf("%s\n",buffer[i]);
  62.     }
  63. }
  64.  
  65. int main (){
  66.     int i=0;
  67.     FILE *f;
  68.     double num[MAX];
  69.     char *city[MAXSIZE];
  70.     char buffer[MAXSIZE],nome[MAXSIZE]="input.txt";
  71.     f=fopen(nome,"r");
  72.    
  73.     while(fgets(buffer,MAXSIZE,f) != NULL){
  74.         strcpy(city[i],buffer);
  75.         printf("%s",buffer);
  76.         num[i]=haversine(buffer);
  77.         i++;
  78.     }
  79.     printIT(num,city);
  80.     fclose(f);
  81.     return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement