就是这个应该用数组吗?还是调用函数什么的?

  统计1-788的自然数中出现的0-9的个数
int fun(int i,int a[])
{
    while(i)
    {
        a[i%10]++;
        i/=10;
    }
}
#include<stdio.h>
main()
{
    int i;
    int a[10]={0};
    scanf("%d",&n);
    for(i=788;i>0;i--)
    {
        fun(i,a);
    }
    for(i=0;i<10;i++)
        printf("%d ",a[i]);
}

如有帮助,采纳支持一下,谢谢。


#include<stdio.h>
/*
统计1-788的自然数中出现的0-9的个数
*/
void main()
{
    int num[10] = {0};
    for (int i = 1; i < 789; i++)
    {
        if (i<10)
        {
            num[i]++;
        }
        else if (i<100)
        {
            num[i % 10]++;
            num[i / 10]++;
        }
        else {
            num[i % 10]++;
            num[i / 10 % 10]++;
            num[i / 100]++;
        }
    }
    for (int i = 0; i < 10; i++)
    {
        printf("%d\n",num[i]);
    }
}

不需要数组啊,一个循环就搞定的啊