2016-07-15 16 views
-4

Ich bin sicher, es gibt eine sehr, sehr einfache Antwort, aber ich habe stundenlang gesucht und kann es nicht herausfinden. Wie der Titel sagt, erhalte ich einen Fehler, den ich im Code kommentiert habe. Alles scheint in der richtigen Syntax zu sein, also habe ich keine Ahnung, was es sein könnte.Fehler: erwartet ',' oder ';' vor '{' token

#include <iostream> 
#include <math.h> 
using namespace std; 
float x, y, k, q, base, exponent; 

/*float atan(q) 
{ 
    //I had made my own functions for all the different math functions that 
    would have normally been included in the math.h file, but I had no idea 
    how to tackle making a function for an arc tangent as all the information 
    I could find online just had you kinda guess what the end result might be, 
    so I used the math.h file for this and only this function. 
}*/ 
float sqrot(k) 
{ // <----- the error is here 
    float guess, divide, average, z; 
    guess=rand()%k; 
    for(z;z<500;z++) 
    { 
     divide=k/guess; 
     average=(guess+divide)/2; 
     guess=average; 
    } 
} 
float cosine(y) 
{ 
    y=1-(((y*y)/2)+((y*y*y*y)/24)-((y*y*y*y*y*y)/720)); 
    return y; 
} 
float sine(x) 
{ 
    x=x-(((x*x*x)/6)+((x*x*x*x*x)/120)-((x*x*x*x*x*x*x)/5040)); 
    return x; 
} 
float power(base, exponent) 
{ 
    while(exponent>1) 
    { 
     base=base*base; 
     exponent-1; 
    } 
    return base; 
} 
float haversine(lat1,long1,lat2,long2) 
{ 
    float degree_to_rad, pi=3.14159; 
    int d_lat, d_long, a, c, mi; 
    degree_to_rad=pi/180; 
    d_lat=(lat2-lat1)*degree_to_rad; 
    d_long=(long2-long1)*degree_to_rad; 
    a=power(sine(d_lat/2),2)+cosine(lat*degree_to_rad)*cosine(lat2*degree_to_rad)*power(sine(d_long/2),2); 
    c=2*atan((sqrot(a))/(sqrot(1-a))); 
    mi=3956*c; 
    return mi; 
} 
int main() 
{ 
    int answer; 
    cout<<"Enter the Latitude of your starting location: "; 
    cin>>lat1; 
    cout<<"Enter the Longitude of your starting location: "; 
    cin>>long1; 
    cout<<"Enter the Latitude of your ending location: "; 
    cin>>lat2; 
    cout<<"Enter the Longitude of your ending location: "; 
    cin>>long2; 
    answer=haversine(lat1, long1, lat2, long2); 
    cout<<"The distance between the two points is: "<< answer; 
    return 0; 
} 
+1

Sie haben nicht gegeben Typen auf alle Ihre Parameter

float sqrot(type k) // ^^^^ 

und ähnlich

gewesen für einen Anfang ... – John3136

+0

Sie müssen den Typ Ihres Parameters angeben, sonst der Compiler "th Tinten "Es ist ein Funktionsprototyp und benötigt einen Semikolon –

+0

Sie können leicht den einen reparieren, der tatsächlich einen Typenspezifizierer für den Parameter zur Verfügung stellt. Aber Sie werden dann zu weiteren Fehlern kommen (http://coliru.stacked-crooked.com/a/cfdf9fa7a5aefb2b). –

Antwort

2

Formal Argumente müssen einen Typ haben

float sqrot(k) 

sollte mit allen anderen Funktionen

Verwandte Themen