计算数字在二维数组 C 中出现的次数

标签 c arrays multidimensional-array 2d

我正在尝试计算一个数字在二维数组中出现的次数,但是当我尝试打印值时,它开始在第一个元素之后给我错误的数字。我正在尝试为我拥有的数独项目解决这个问题,但我发布了不同的源代码,以便弄清楚为什么会发生这种情况。

#include <stdio.h>

int main() {
    int i, j, k;
    char check[10];
    char puzzle[6][10] = {
        { 1, 1, 3, 4, 4, 4, 5, 9, 2, 7 },
        { 9, 9, 8, 8, 8, 8, 8, 6, 9, 5 },
        { 1, 1, 3, 4, 4, 4, 5, 9, 2, 7 },
        { 9, 9, 8, 8, 8, 8, 8, 6, 9, 5 },
        { 1, 1, 3, 4, 4, 4, 5, 9, 2, 7 },
        { 9, 9, 8, 8, 8, 8, 8, 6, 9, 5 }
    };

    for (i = 0; i < 6; i++) {
        for (j = 0; j < 10; j++) {
            check[puzzle[i][j]]++;
        }
    }
    for (k = 1; k < 10; k++) {
        printf("check[%d] = %d\n", k, check[k]);
    }
    return 0;
}

输出:

check[1] = 6
check[2] = -101
check[3] = -6
check[4] = -56
check[5] = 101
check[6] = 2
check[7] = -126
check[8] = 15
check[9] = 12
Program ended with exit code: 0

最佳答案

I am trying to count the amount of times a number appears in a 2D array, but when I try and print values it starts giving me wrong numbers after the first element.

数组 check 中您递增的值是非零的,因为该数组从未初始化。

这一行:

char check[10];

需要是这样的:

char check[10] = {0};

关于计算数字在二维数组 C 中出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52375458/

相关文章:

python - 这里发生了什么?在随机列表列表中重复行

javascript - Vue.js 从数组中弹出一个嵌套对象

c - 如何读取缓冲区中保留内容的缓冲区?

c++ - 调试优化的 C/C++ 程序的有效方法是什么?

ios - 如何防止将相同的字符串添加到存储的数组中

JAVA:如何将字符串ArrayList转换为整数ArrayList?

c - C 中的结构和多维数组全局声明

c - 指针问题,数组第二个位置与另一个数组中的第一个位置相同

c - 进程的标准输出未通过 dll 注入(inject)正​​确重定向

java - 对象数组赋值问题