对除第一个元素qsort C以外的所有内容进行排序

多普斯特

我确实有些奇怪。我想在棋盘上按颜色对许多元素进行排序。这非常容易(请参阅附加代码),因此,如果x%2 == y%2为true,则为黑色,否则为白色。但这不是问题。我确实在数组的前面有一个元素,这有点不同(以后需要进行一些计算),并且需要保持在原位置。

是否可以在不触摸第一个元素的情况下对数组进行排序?

int compareColour(const void * fs1, const void * fs2) {
    Field *orderA = (Field *)fs1;
    Field *orderB = (Field *)fs2;

    bool isBlackB = ((orderA->x%2)==(orderA->y%2));
    bool isBlackA = ((orderB->x%2)==(orderB->y%2));
    return (isBlackB - isBlackA);
}

void sortByColour() {
    qsort(fieldArr,(size_t) countFields, sizeof(Field), compareColour);
}
穆雷尼克

您可以将指针传递到第二个元素(即索引1处的指针),而不是数组的开头,然后将计数减少一个,如@ user3386109所评论:

qsort(fieldArr + 1, (size_t) (countFields - 1), sizeof(Field), compareColour);
/* 2nd element---^ */
/* Reduce the count ----------------------^ */

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用列表切片从列表中获取除第一个元素以外的所有内容

如何从数组中删除除JavaScript中的第一个元素以外的所有元素

在javascript数组中,如何获取除第一个元素以外的最后5个元素?

选择除第一个元素外的所有子元素

如何从Java中的ArrayList中删除除第一个元素外的所有内容

将列表中除第一个元素外的所有元素连接到字符串

获取除第一个和最后一个以外的所有数组元素

使用纯CSS隐藏除元素的第一个孩子之外的所有孩子

使用CSS3选择除第一个元素外的所有元素

如何删除除第一个元素外的所有子元素?

如何在Matlab中获取矩阵的除第一个元素以外的所有元素?

React-除第一个元素外,正在完成排序

为除第一个元素以外的所有元素实现代码

需要一个数组,其中新数组的第一个元素=除第一个元素以外的所有元素的和

C#检查所有列表视图组中除第一个项目以外的所有项目

为什么我的TreeSet不添加除第一个元素之外的任何内容?

检查除第一个元素外的所有元素是否都具有特定类

除矩阵的除第一个元素外的所有元素

如何使用jQuery删除除第一个div以外的克隆元素div

从StackPanel中删除除第一个项目以外的所有项目?

通过JavaScript隐藏DataList的除第一个元素外的所有元素

将文件中每行的除第一个','以外的所有内容更改为“ <COMMA>”(bash)

c ++ 98,向量,删除除第一个元素之外的所有元素

如何取除第一个 k 以外的所有元素

悬停状态的第 n 个子公式 - 除第一个元素之外的所有元素

除第一个元素之外的所有元素的分段错误

如何加入数组中除第一个元素之外的所有元素?

CSS - 隐藏除第一个之外的所有同类元素 - 不是子元素

选择除第一个以外的所有元素