【发布时间】:2016-03-20 18:55:29
【问题描述】:
我需要在数组中的数字之间进行排序。
输入.txt: 0005 0006 FFFF 0007 0003 FFFF 0004 0002 0001 FFFF 0000
并且输出应该是: 000 0005 0006 0000 0003 0005 0006 0007 0000 0001 0002 0003 0004 0005 0006 0007
FFFF 在输出中为 0000,并在它们之间进行排序,但要使用整个数组的数字。 我的代码以升序对它们进行排序,这不是正确的输出。 0001 0002 0003 0004 0005 0006 0007 FFFF FFFF FFFF
// sort the integers
for(i = 1; i < count; i++)
{
temp = array[i];
j = i - 1;
while( (temp < array[j])&&(j >= 0))
{
array[j + 1] = array[j];
j = j - 1;
}
array[j + 1] = temp;
}
for (i=0; i<count; i++)
{
printf("%04X ", array[i]);
}
【问题讨论】:
-
我不明白你在问什么。您所需的输出与您提供的输入不匹配。
-
@WeatherVane 输出应该是这样的。目前我收到:0000 0001 0002 0003 0004 0005 0006 0007 FFFF FFFF FFF。我正在考虑将“if 语句”放在“for 循环”或“while”中。两者都必须尝试。
-
0xFFFF不一定是-1。如果您想要-1,请使用-1,并且不要不必要地依赖实现细节。 -
@Olaf 以十六进制格式完成。 -1 或任何其他 FFFF,无所谓
-
@RyadKovach 请编辑问题,以便有一致的问题陈述和所需答案。如果数字到处都是,我只能看到。
标签: c arrays sorting hex insertion-sort