问题描述
程序从用户处获取整数值并返回每个数字的出现次数。尝试输出以下形式:
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 (将#修改为@)