请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。
输入格式:
每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。
输出格式:
对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n[10]={
0}; //´æ1~9¸öÊý×Ö¸öÊý
int m[10]={
0,1,2,3,4,5,6,7,8,9};
int t=0;
char a;
while((a=getchar())!='\n')
{
if(a>='0'&&a<='9')
{
n[a-48]++;
}
}
/* for(int i=0;i<=7;i++)//如果是根据个数来排序,
// 可以加上着些注释的语句
{
for(int j=0;j<=8-i;j++) //就当练练冒泡排序
{
if(n[j]<n[j+1]) //按个数降序
{
t=n[j];
n[j]=n[j+1]; //个数多的到前面
n[j+1]=t;
t=m[j];
m[j]=m[j+1]; //对应的数字也移动
m[j+1]=t;
}
}
}*/
for(int p=0;p<=9;p++)
{
if(n[p]>0) //如果数组里是有东西的
{
printf("%d:%d\n",m[p],n[p]); //输出
}
}
return 0;
}
题目挺简单的,就是冒泡排序快忘了,稍微复习一下(虽然此题不用排序,就当我闲得慌吧).