题目:
一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如第6页用6表示而不是06或006。数字统计问题要求对给定书的总页码,计算出书的全部页码中分别用到多少次数字0,1,2,3,.....9。
要求:
输入
书本的页码总数n (0<n<200)
输出
输出书的全部页码中分别用到多少次数字0,1,2,3,.....9,每个数字占一行
分析
先初始化一个数组来存储出现0~9的页码数字的个数,因为数组刚好是从下标0开始的,则可以在取模后的数字作为arr1的下标。这里使用两个循环,第一个for循环将页码从1~num,然后在while循环里面判断j>0,进入循环,得到取模后的k,然后对应arr1数组中加1,再j=j/10,再判断j。
代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//页码问题
int main() {int num=0;//输入数字int i;int arr1[10] = { 0 };//统计数组scanf("%d", &num);for (i = 1; i <= num; i++) {int j = i;//如果页码数大于0while (j > 0) {int k = j % 10;////相应页号+1arr1[k]++;j=j/ 10;}}for (int p = 0; p < 10;p++){printf("%d\n", arr1[p]);}return 0;}