我试图比较结构数组中两个节点之间的变量dist。
结构如下:

struct arco{
  int u, v;
  double temp, dist;
}arcos[MAXOASIS];

这是我的代码:
int compDist(const void *a, *void const *b, i, j){
  struct arco *ia = (struct arco *)a;
  struct arco *ib = (struct arco *)b;
  ia->arco[i].dist;
  ib->arco[j].dist;
  return(if(*ia > *ib)? *ia : *ib)
}

但这是错误的。怎么办?

最佳答案

  ia->arco[i].dist;
  ib->arco[j].dist;

那该怎么办?你可能想要像
return(ia->arco[i].dist > ib->arco[j].dist? ia->arco[i].dist : ia->arco[j].dist)

你可以使用一些中间变量使它更清晰。
编辑
根据您的编辑,您可能需要:
return (ia->dist - ib->dist);

10-07 15:06