c语言统计数字出现次数 刚学数组

给出一个K位的整数(k<100),请编写程序统计每种不同的数字出现的次数。例如,给定N=100311,则有2个0,3个1 ,1个3。对N中每一种不同的数字,以D:M的形式在一行中输出,要求D按照升序输出。

【示例】

【输入】

100311

【输出】

0:2

1:3

3:1
刚学数组不要太复杂


#include <stdio.h>
int main()
{
    int n;
    int num[10] = {0};
    scanf("%d", &n);
    while (n != 0) {
        num[n % 10]++;
        n = n / 10;
    }
    for (int i = 0; i < 10; i++)
    {
        if (num[i]!=0)
        {
            printf("%d:%d\n",i,num[i]);
        }
    }
    return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
    char t[100];
    gets(t);
    int len=strlen(t);
    int j,num[100]={0};
    for( j=0; j<len ; j++)
    {
        int tem=t[j]-48;
        num[tem]++;    
    }
    for( j=0; j<len ; j++)
    {
        if(num[j]>0)
        printf("%d:%d\n",j,num[j]);
    }
    return 0;
}


#include <stdio.h>
#include <string.h>
int main()
{
    int i;
    char str[100];
    int fre[10] = {0};
    gets(str);
    for(i = 0;i < strlen(str);i++){
        fre[str[i] - '0'] ++;
    }
    for (int i = 0; i < 10; i++)
    {
        if (fre[i] > 0)
        {
            printf("%d:%d\n", i, fre[i]);
        }
    }
    return 0;
}