c语言 求!!等!求!等!

1.在main中定义一个数组,用一个函数 init函数为数组读入值,用order函数为数组排序,用list函数输出数组。
2.输入一个整数num,传入函数,函数名为digi,判断是几位数,返回整数的位数,在主程序中输出

第一题

#include <stdio.h>
#define N 10

void init(int *p, int n)
{
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &p[i]);
    }
}

void order(int *p, int n)
{
    int i, j, tmp;

    for (i = 1; i < n; i++)
    {
        tmp = p[i];
        j = i - 1;
        while (tmp < p[j])
        {
            p[j + 1] = p[j];

            j--;
            if (j == -1)
                break;
        }
        p[j + 1] = tmp;
    }
}

void list(int *a, int n)
{
    for (int i = 0; i < n; i++)
    {
        printf("%d ", a[i]);
        if (i + 1 % 10 == 0)
            puts("");
    }
}

int main(int argc, char *argv[])
{
    int arr[N];

    //录入数据
    init(arr, N);

    //排序
    order(arr, N);

    //输出
    list(arr, N);

    return 0;
}

第二题

#include <stdio.h>
int digi(int n)
{
    if (n == 0)
        return 1;
    int num = 0;
    while (n)
    {
        n /= 10;
        num++;
    }
    return num;
}

int main(int argc, char *argv[])
{
    int n;
    scanf("%d", &n);
    printf("%d是%d位数\n", n, digi(n));
    return 0;
}