我有一个关于数组的问题。
所以,我有一个大小为 255
的数组(我们称它为 array(255)
)。我还有一个名为 block
的 integer
。
我想对这个数组进行分类(我希望这个词是正确的)。
我想要的是:
如果选择的数组元素是
From (0-63) , block = 0
From (64-127) , block = 1
From (128-191), block = 2
From (192-255), block = 3
我知道在这种情况下我可以只使用 if 语句。但是,如果我将阵列大小扩展到数千个怎么办?
我不能使用 If 语句的行。
有没有更简单有效的解决方案?
最佳答案
您可以简单地用整数除法来完成:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdint.h>
#include <inttypes.h>
int main(void)
{
uint8_t array[255] = {0};
srand(time(NULL));
for(size_t i=0; i<sizeof(array)/sizeof(array[0]); i++)
{
array[i] = rand() % 256;
printf("Array[%zu]= %"PRIu8"\tblock= %"PRIu8"\n", i, array[i], array[i] / 64 );
}
}
关于c - 如何在C中对数组元素进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42921462/