У меня есть исключение с плавающей запятой, и я не знаю почему.Почему исключение с плавающей запятой?
код это:
void calcola_fitness(){
vector<double> fitness;
int n=nodes.size();
int e=edges.size();
int dim=feasibility.size();
int feas=(feasibility[dim-1])*100;
int narchi=numarchicoll[dim-1]/e;
int numero_nodi=freePathNode.size()/n;
double dist_start_goal=node_dist(0,1);
int i,f,t;
double pathlenght=0;
int siize=freePathNode.size();
for(i=0;i!=siize-1; i++){
f=freePathNode[i].getIndex();
i++;
t=freePathNode[i].getIndex();
i--;
pathlenght=pathlenght+node_dist(f,t);
}
double pathlenghtnorm=pathlenght/10*dist_start_goal;
double fit=((double)numero_nodi+pathlenghtnorm+(double)narchi)*((double)feas);
fitness.push_back(fit);
}
Может кто-нибудь мне помочь? В чем проблема? Я могу это решить? большое спасибо
На какой строке вы получаете сообщение об ошибке? Какова ценность 'dist_start_goal'? –
Он компилируется, но в процессе выполнения, когда я прошу этот метод, у меня есть эта ошибка. метод node_dist: double node_dist (int from, int to) { возвратные узлы [from] .distance (узлы [to]); } – livio8495
Вы не можете получить SIGFPE от возврата номера. – bmargulies