c - 如何在C中对数组元素进行分类

标签 c arrays

我有一个关于数组的问题。

所以,我有一个大小为 255 的数组(我们称它为 array(255))。我还有一个名为 blockinteger

我想对这个数组进行分类(我希望这个词是正确的)。

我想要的是:

如果选择的数组元素是

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/

相关文章:

javascript - JQuery:将 JSON 结果存储在 JavaScript 数组中?

c - vector : Static versus Dynamic 的赋值

iphone - 使用谓词过滤数组中对象的属性

c - 如何使 Gtk+ 窗口背景透明?

c - 图片里面到底是什么以及如何使用 C 创建图片

c - 数组和 scanf 输入是否齐头并进?

javascript - 无法在 node.js 中打印数组

c - 在 Mac OS X 上以编程方式枚举动态库中的符号

Java 等同于 c 函数调用

c - 如何使用 mbedtls_pk_verify 验证签名