用的vs2022,按理来说用位运算将大数输出后赋为了0,这样后面的数就避开了这个数的干扰继续排序,但是在执行的时候最后一个数却会重复第二大的数并发生错误,求解惑。
for (i = 0; i < 9; i++)
for (j = 0; j < 9 - i; j++)
{
if (a[j] > a[j + 1])
{
a[j] = a[j] ^ a[j+1];
a[j+1] = a[j] ^ a[j+1];
a[j] = a[j] ^ a[j+1];
}
}
供参考:
把 a[j] = 0 去掉
不知道你这个问题是否已经解决, 如果还没有解决的话:内核中可以直接使用printk的%pf,%pF选项,%pF选项多打印偏移地址。测试例:
void testname()
{
return;
}
void test()
{
void (*funcptr) = testname;
printk("%pf\n", funcptr);
}
抱歉,以上参考资料并没有提供具体的排序代码段,也没有提供与问题相关的代码段,因此我无法提供您所需要的代码段。如果您有具体的问题或需求,可以再与我联系并提供更多的信息。