Прочитайте в массиве, чтобы предсказать более поздние результаты в C

В основном то, что я пытаюсь спросить, есть в любом случае, чтобы читать дальше в массиве, чтобы вы могли создать для него «случай».

Например: массив имеет только целые числа, такие как: 0 0 0 0 4 0 1 0 0 0 0 0 0 0 0 0 0 0 0 3

и то, что вы хотите сделать, – создать coutdown до следующего ненулевого номера. В основном отобразите обратный отсчет. Есть какой-либо способ сделать это?

Этот код:

#include  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  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 '