思路:这道题的话挺简单的,这是对比1~9个数字分别出现多少次,用两个循环就能解决,最主要的是要什么对比每个数的位数上的数。(使用了%与/操作符,并且a[b]++还使用了自增操作符)
见代码:#include<stdio.h>
int main()
{
int i, n1, n2, b;
int a[10] = {0}; // 定义一个包含 10 个元素的整数数组,用于统计数字 0-9 的出现次数,初始值都为 0
scanf("%d %d",&n1,&n2); // 输入两个整数 n1 和 n2
for(i = n1; i <= n2; i++) // 遍历从 n1 到 n2 的所有整数
{
int num = i;
while(num > 0) // 对当前整数进行处理,将其各位数字拆出并统计
{
b = num % 10; // 获取当前整数的个位数字
num = num / 10; // 将当前整数去掉个位数字
a[b]++; // 对应数字的出现次数加一
}
}
for(i = 0; i < 10; i++) // 输出每个数字 0-9 的出现次数
{
printf("%d ", a[i]);
}
return 0;
}