|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
输出 10行,分别代表个位数为 0 1 2 3 4 5 6 7 8 9的数字的个数
为什么运行崩溃
- #include <stdio.h>
- int main()
- {
- int a[10]={0},b[10000];
- int i,m,num;
- scanf("%d",&m);
- for(i=0;i<m;i++)
- {
- scanf("%d",&b[i]);
- num=b[i]%10;
- a[num]++;
- }
- for(i=0;i<9;i++)
- {
- printf("%d\n",a[i]);
- }
- printf("%d",a[9]);
- return 0;
- }
复制代码
鱼油代码片段逻辑应该不会导致程序崩溃,是正确的。
可能导致程序崩溃的几个原因有:
- 输入的数字 m 大于数组 b 的大小(10000)。这会导致数组越界,可能会导致程序崩溃。
- 输入格式不正确,例如非数字字符,可能会导致未定义行为。
- 如果在不安全的环境中运行(例如,不信任的在线编译器),编译器或环境本身可能有问题。
- 如果你在运行这段代码时遇到崩溃,建议检查输入是否正确,或尝试在不同的编译器/环境中运行程序。此外,确保输入的 m 不会超过数组 b 的大小限制。
请注意,循环应该是 for(i=0;i<10;i++) 而不是 for(i=0;i<9;i++),以确保打印所有十个数字的计数。
尽量这么写:
- for(i=0;i<10;i++)
- {
- printf("%d\n",a[i]);
- }
复制代码
|
|