基本上我要问的是,无论如何都要在数组中提前读取,以便为它创建一个“案例”。
例如:你的数组只有整数,如:0 0 0 0 4 0 1 0 0 0 0 0 0 0 0 0 0 0 0 3
你想要尝试做的是创建一个coutdown直到下一个非零数字。基本上显示倒计时。有没有办法做到这一点?
答案 0 :(得分:1)
此代码:
#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 '