PTA L1-003 个位数统计

174 阅读1分钟

给定一个 k 位整数 N=dk−1​10k−1+⋯+d1​101+d0​ (0≤di​≤9, i=0,⋯,k−1, dk−1​>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。

输入格式:

每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。

输出格式:

对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。

输入样例:

100311

输出样例:

0:2
1:3
3:1

/*
    统计一个数字上每位数字(0-9)出现的次数
    利用数组的下标,每个位的数字对应数组的下标
    利用数组元素来存每个位上数字出现的次数
*/
#include<stdio.h>

int main()
{
    int a[10] = {0};
    
    char s[1001];
    scanf("%s",s);

    int i;
    for( i = 0 ; s[i] ; i++)
    {
        a[s[i]-'0']++;
    }

    
    for( i = 0 ; i<10 ; i++)
    {
        if(a[i]) printf("%d:%d\n",i,a[i]);
    }

    return 0;
}