题目来源:L1-003 个位数统计 - 团体程序设计天梯赛-练习集 (pintia.cn)
要求:输入一个K位的数,编写程序统计每种不同的个位数字出现的次数。
分析:要统计输入数的个位数出现次数,即要对该数的每一位都进行比较操作,可以将该数看作字符串存在数组中,方便对每位数进行对比,同时需要存放不同个位数的具体数目,借助一个数组即可。最后根据要求打印其内容。
具体代码实现:
#include<stdio.h>
#include<string.h>
int main(){
char num[1000];//以字符形式存储该数
int nums[10]={0};//存每个个位数的出现次数,num[0]存放0的次数,以此类推
scanf("%s",num);
int length=strlen(num);//获取该数的位数
for(int i=0;i<length;i++){//根据该数每位数的值更新次数数组
int k=num[i]-'0';//获取当前位的值
nums[k]++;//更新相应的次数数组
}
for(int i=0;i<10;i++){//按格式输出
if(nums[i]!=0){
printf("%d:%d\n",i,nums[i]);
}
}
return 0;
}