c - 直方图生成函数

标签 c count histogram

我被指派对别人编写的 C 程序进行一些更改...我想先了解它以便正确地处理它...我想到了一个函数,它可以根据给定的 ASCII 值生成直方图长串数据。是这样的。

//load the symbols the old data
  for(int k = 0;k < 256;++k)
  {
    sym[k].Symbol = k;
    sym[k].Count  = 0;
  }

  //Creating the probability distribution for each of the source symbols.
  for(int k = size;k;--k)
  {
    sym[*in ++].Count ++;
  }

这里的'in'是包含要统计的字符的char数组(字符串)。 sym 是一个结构变量。我不太明白这是怎么回事。谁能告诉我第二个循环如何生成字符串中符号 1 到 255 (ASCII) 的计数?

最佳答案

for(int k = 0; k < size; k++)
  {
    sym[in[k]].Count++;
  }

这基本上就是第二个循环所做的。

它们只是取消引用,然后一步移动到下一个 ascii 值,并为该 ascii 值递增计数器。

关于c - 直方图生成函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1869062/

相关文章:

image - 函数calcHist()给我们带来了什么

python - 如何在opencv/python中识别具有特定形状的直方图

c - 指针赋值将指针从 64 位截断为 32 位

c - 为什么这个 "if"语句没有在它应该触发的时候触发?

r - 计算 value 和 value - x 之间的值的数量,按变量

php - 计算表中的实例并捕获每个实例的 id

c++ - SDL(简单媒体直接层)尝试缩放我的 Sprite (角色)

c - 反转数组中的元素

sql - 条件 SQL 计数

python - 大型数据集的自定义直方图输入