【发布时间】:2018-09-18 04:56:41
【问题描述】:
我有一个这样的数组:
arr[] = {0010,1,001,01}
我需要根据数组的位数按升序对数组进行排序, 输出应该是:
arr[] = {1,01,001,0010}
我试图获取每个元素的位数并将其保存在另一个数组中,例如:
digits[] = {4,1,3,2}
当我对digits[]进行排序时,它应该反映在arr[]中
【问题讨论】:
-
这些数字没有你认为的数字(顺便说一句是八进制)
-
0 = 00 = 000 = 0000.. 看看 printf-%d 中的每一个。 (以 real-data / integers-without-leading-zeros 为例,这个问题可能更适合..)
-
1 = 01(第二个是1的八进制形式) - 你的编译器可能会警告你0010和001,因为没有@987654330 C 标准指定的 @ 前缀(但大多数编译器无论如何都会接受1的值)。 -
在您的
arr声明中arr[]之前的type是什么? -
@davidcrankin 这是一个整数数组。