检查数组的出现次数并输出到新数组。 C

标签 c arrays

我需要循环遍历一个数组并查找数组中数字的出现次数,然后将出现的次数输出到新数组中。

void create_hist(double input[], int num_of_inputs, int output[])
{
int num_to_check = input[0];
int counter = 0;

for (int i = 0; i < num_of_inputs; i++)
{
        if (input[i] == num_to_check)
        {
            counter++;  /* it was found */
        }
        output[i] = counter;    
}

return;
}

考虑输入由 input[3] ={0, 0 ,0} 组成。输出应为 output[3] = {3, 0, 0}

当前输出是output[3] = {1, 2, 3}——我是否需要创建另一个数组来保存每个循环的值,然后将其输出。我只是迷失了这一点。

最佳答案

看到这里的问题是你的输入数组是 {0,0,0} ,所以在开始时你已经将 num_to_check 初始化为 0 ,所以当你迭代时for 循环第一次 if 条件成立,计数器增加 1,在下一次迭代中,if 语句再次为 true,因为 input[1]num_to_check 是 0 ,所以现在计数器再次增加 1 ,并且在最后一次迭代中发生同样的情况,这就是您获得输出为 {1,2,3} 的原因。您不需要创建另一个数组,代替 output[i] 下标中的 i ,使用其他变量 j 并适当递增它。

关于检查数组的出现次数并输出到新数组。 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51832022/

相关文章:

c - GtkPaned 来自鼠标的移动 handle 信号?

c - fopen() 在一段时间内成功打开文本文件并在特定时间后失败

c++ - 我可以检索使用 Conan 包管理器打包的库的源代码以便能够在其中进行调试吗?

php - PHP 中的字符串连接与数组内爆

java - 如何解决java.lang.ArrayIndexOutOfBoundsException错误

ios - 使用 AFNetworking 2 将 Json 数组发送到服务器时出错

c - “ float ”与 'double' 精度

C 编译 - 尝试链接目标文件时为 'undefined reference to function'

javascript - 停止 ng-repeat 然后恢复它

c++ - 如何使用 setfill 和 setw 在字符串变量中存储十六进制值