输入数字中出现数字的意外值

问题描述

程序从用户获取整数值并返回每个数字的出现次数。尝试输出以下形式:

Digit:       0   1   2   3   4   5   6   7   8   9
Occurrences: a   b   c   d   e   f   g   h   i   j

但是,例如,输入数字 123456123456 我得到以下输出

Digit:       0   1   2   3   4   5   6   7   8   9
Occurrences: 0   2   2   2   2   2   2   0   210798896   3

似乎无论输入如何,我都会得到 9 => 3 和 8=>(一些巨大的数字)的输出。我似乎无法弄清楚是什么导致了数组的最后两个元素爆炸。

#include <stdio.h>

int main(void)
{

    int i,digit;
    long n;              // value given by user
    int digit_found[10]; // array for storing occurrences of 0-9

    printf("Enter a number: ");
    scanf("%ld",&n);

    while (n > 0)
    {
        digit = n % 10;
        digit_found[digit]++;
        n /= 10;
    }

    printf("Digit:       ");
    for (i = 0; i < (int)sizeof(digit_found) / sizeof(digit_found[0]); i++)
    {
        printf("%d   ",i);
    }
    printf("\nOccurrences: ");
    for (i = 0; i < (int)sizeof(digit_found) / sizeof(digit_found[0]); i++)
    {
        printf("%d   ",digit_found[i]);
    }
    printf("\n");
    return 0;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)