基本上我要问的是,无论如何都要在数组中提前阅读,以便您可以为它创建一个“案例”。
例如:您的数组只有整数,例如:0 0 0 0 4 0 1 0 0 0 0 0 0 0 0 0 0 0 0 3
而您想要尝试做的是创建一个倒计时,直到下一个非零数字。基本上显示倒计时。有没有办法做到这一点?
这段代码:
#include <stdio.h>
int main(void)
{
    int array[] = { 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, };
    int a_size  = sizeof(array) / sizeof(array[0]);
    int i = 0;
    while (i < a_size)
    {
        if (array[i] == 0)
        {
            int j;
            for (j = i; j < a_size; j++)
                if (array[j] != 0)
                    break;
            printf("%d\n", j - i);
            i = j;
        }
        else
            i++;
    }
    return 0;
}
产生这个输出:
4
1
12
如果这就是你想要的,那大致就是你需要的。如果不是你想要的,你需要更清楚地解释你想要的是什么。
修改后的预期输出的代码:
#include <stdio.h>
int main(void)
{
    int array[] = { 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, };
    int a_size  = sizeof(array) / sizeof(array[0]);
    int i = 0;
    while (i < a_size)
    {
        if (array[i] == 0)
        {
            int j;
            for (j = i; j < a_size; j++)
                if (array[j] != 0)
                    break;
            int k = j - i;
            while (k > 0)
                printf(" %d", k--);
            i = j;
        }
        else
        {
            printf(" '");
            i++;
        }
    }
    putchar('\n');
    return 0;
}
修改后的输出:
 4 3 2 1 ' 1 ' 12 11 10 9 8 7 6 5 4 3 2 1 '