有没有人会的,求解答,求解答

编写程序输入正整数nn大于等于一,小于等于五,再输入n个正整数对每个整数每一位数据统计0到9各个数出现次数

使用二维数组实现代码参考如下:

int main(int argc, const char * argv[]) {
    int n;
    scanf("%d", &n);
    // 定义二维数组存储输入整数0到9各个数出现次数
    int arr[n][10];
    for (int i = 0; i < n; i++) {
        // 给二维数组初始化值
        for (int j = 0; j < 10; j++) {
            arr[i][j] = 0;
        }
        // 输入第i+1个正整数并统计0到9各个数出现次数存入数组
        int a;
        scanf("%d", &a);
        if (a == 0) {
            
            arr[i][0] = 1;
            continue;
        }
        while (a != 0) {
            arr[i][a%10] += 1;
            a /= 10;
        }
    }
    // 输出各个整数0到9各个数出现次数
    for (int i = 0; i < n; i++) {
        printf("第%d个整数0-9各个数出现次数:\n", i+1);
        // 给二维数组初始化值
        for (int j = 0; j < 10; j++) {
            printf("%d-%d ", j, arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

供参考:

#include <stdio.h>
int main()
{
    int i, n, k, t, a[10] = { 0 };
    do {
        printf("请输入一个正整数N(1<=n<=5):");
        scanf("%d", &n);
    } while (n < 1 || n>5);
    while (n--) {
        scanf("%d", &k);
        t = k;
        if (t < 0) {
            printf("请输入一个正整数!\n");
            continue;
        }
        else if (t == 0)
            a[0]++;
        else {
            while (t) {
                a[t % 10]++;
                t /= 10;
            }
        }
        printf("整数%d,各位数出现的次数:\n", k);
        for (i = 0; i < 10; i++)
        {
            printf("%d:%d\n", i, a[i]);
            a[i] = 0;
        }
    }
}