如何解决输入数字中出现数字的意外值
程序从用户处获取整数值并返回每个数字的出现次数。尝试输出以下形式:
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 举报,一经查实,本站将立刻删除。