用c语言,一维数组统计两个正整数之间的所有整数中包含0,1,2,…,9数码的个数,然后输出数组,
时间: 2024-05-14 20:18:34 浏览: 60
以下是用 C 语言编写的程序,可以实现你的需求:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int num1, num2, i, j, digit, count;
int digits[10] = {0};
printf("请输入两个正整数:\n");
scanf("%d%d", &num1, &num2);
if (num1 > num2) {
printf("第一个数必须小于第二个数!\n");
exit(0);
}
for (i = num1; i <= num2; i++) {
count = 0;
j = i;
while (j != 0) {
digit = j % 10;
if (digits[digit] == 0) {
digits[digit] = 1;
count++;
}
j /= 10;
}
if (count == 10) {
break;
}
}
printf("数字0~9在%d和%d之间所有整数中出现的次数如下:\n", num1, num2);
for (i = 0; i < 10; i++) {
printf("%d出现了%d次\n", i, digits[i]);
}
return 0;
}
```
程序中定义了一个包含10个元素的整型数组 `digits`,用于统计数字 0~9 在输入的两个正整数之间所有整数中出现的次数。
程序首先提示用户输入两个正整数,如果第一个数大于第二个数,则输出错误信息并结束程序。
接着,程序使用一个循环遍历输入的两个正整数之间的所有整数。对于每个整数,程序通过除以10和取模运算得到该整数的每个位上的数字,并将该数字对应的 `digits` 数组元素设为1,以表示该数字已经出现过。同时,程序还记录了在当前整数中已经出现的不同数字的个数,如果该个数等于10,则说明数字 0~9 都已经出现过,直接跳出循环。
最后,程序输出了 `digits` 数组中每个元素的值,即数字 0~9 在输入的两个正整数之间所有整数中出现的次数。
阅读全文