2013-11-23 3 views
0

기본적으로 내가 물어 보려는 것은 어쨌든 배열에서 미리 읽을 수 있도록하기위한 것이므로 '사례'를 만들 수 있습니다.배열에서 앞서서 C에서 나중에 결과를 예측하기 위해 읽으십시오

예를 들어

: 0 0 0 0 4 0 1 0 0 0 0 0 0 0 0 0 0 0 0 3

무엇 당신이를 작성하면된다하려고 시도하는 : 당신 배열과 같은 정수만을 가지고 다음 0이 아닌 번호까지 coutdown. 기본적으로 카운트 다운을 표시합니다. 이 일을 할 수있는 방법이 있습니까? 만약 당신이 원하는 경우 그것은 당신이 필요로하는 것을 대략이다,

4 
1 
12 

:

+2

더 설명해주십시오! 내가 이해가 안 돼요 ... – MeNa

+0

기본적으로 다음 비 - 제로 번호까지 걸리는 카운트 다운을 표시하고 싶습니다. 첫 번째 경우에 ... 번호 '4'에 도달 할 때까지 처음 0부터 카운트 다운 표시 4 그래서 4,3,2,1 "실제 번호". 그런 다음 4에서 1까지 1은 1입니다. 즉, 1, "실제 숫자"등 –

+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; 
} 

이 출력을 생성합니다. 그것이 당신이 원하는 것이 아니라면, 당신이 원하는 것을 더 분명하게 설명해야합니다.


개정 예상 출력

개정 코드 :

#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 ' 
+0

아, 일종의. 12가 상상하는 총 크기는 (20) - 4 - 3 - 1 = 12입니다. 조금 더 설명하려고합니다 : Couter : 4 3 2 1 '1'12 11 10 9 8 7 6 5 4 3 2 1 ' 배열 : 0 0 0 0 4 0 1 0 0 0 0 0 0 0 0 0 0 3 그 표현 방법이 있습니까? –

+0

12는 배열에서 1과 3 사이의 0 수입니다 (적어도 계산 방법은 같음). 또한 길이 (20) - 다른 두 세트의 길이 0에서 0이 아닌 수까지의 길이입니다. 예. 원하는 내용을 다시 설명해보십시오 (주로 질문 추가 - 정보 추가). 그리고 대답을 결정하는 방법과 주어진 데이터에 대한 예상 답변을 확인하십시오. –