2014-04-16 5 views
0

값은 사용자가 배열에 입력 한 다음이 For 루프가 모두 입력되면 숫자를 비교하도록합니다. 내가 뭘하려고하는지 배열의 첫 번째 큰 번호를 찾으십시오. 배열 내부의 숫자 비교

i = 0; 
next = a[++i]; 
for (i = 0; i < len; i++) 
{ 
    if (a[i] > a[next]) 
    { 
     ++next; 

     if (a[i] < a[next]) 
     { 
      printf("%d is the first larger number.", a[i]); 
     } 
    } 

} 

는 난 볼 내 프로그램을 디버깅 할 때 "I"가 비교 될 때 [다음] 아니고 어레이의 위치를 ​​"I"안의 숫자의 값을 가지고. 나는 If 문을 시작할 때 [i] 대신 "i"를 사용하려고 시도했지만 문제를 해결하지 못하는 것 같습니다.

내 수정 코드입니다. 당신이 첫 번째 지역 최대 찾고있는 가정 연습

#include <stdio.h> 

int main(int argc, const char * argv[]) 
{ 
const int len = 4; 
int a[len]; 
int i; 
int j = a[i-1]; 

for (i = 0; i < len; i++) { 
    printf("Enter a number:"); 
    scanf("%d", &a[i]); 
} 

i = 0; 
for (i = 1; i < len; i++) { 
    if (a[i] > a[j]) 
    { 
      printf("%d is the first larger number.", a[i]); 
     break; 
    } 

} 

} 
+0

는 u는 두 가지 예를 제공 할 수 있습니다, 명확하지 않다? 1 : 출력을 원하는 것은 무엇입니까, 2 : 지금 출력은 무엇입니까? – chouaib

+0

'++ next'는'next'로 증가 할 것입니다 - 배열의 다음 요소가 될 것입니다. – bytbox

답변

0

나는 배열이 줄어들지 않는 첫 번째 장소를 찾고 있다고 생각합니다. 즉 과 같은 첫 번째 요소 i의 색인입니다.

for (i = 1; i < len; i++) { 
    if (a[i] > a[i-1]) { 
     printf("%d is the first larger number", a[i]); 
     break; 
    } 
} 

새 버전, 시퀀스의 첫 번째 부분을 인쇄 : 당신이 달성하려고하는 것을 무엇이든

for (i = 1; i < len; i++) { 
    if (a[i] > a[i-1]) { 
     printf("\n%d is the first larger number", a[i]); 
     break; 
    } 
    printf("%d ", a[i]); 
} 
+0

알았어. 좀 더 이해가가. 이제 나는 더 많은 수에 도달 할 때까지 [i-1] Zanderg

+0

두 번째 루프는 아마 가장 간단합니다. 그렇지 않으면 이미 인쇄 한 두 개를 수동으로 추적해야하기 때문입니다. – bytbox

+0

왜 두 번째 루프? 'else printf ("% d \ n", a [i]);를 루프 안에 넣으십시오. – chouaib

0

에 대한 몇 가지 더 작은 변화를 만들어, 하나 개의 솔루션은 지금까지 본 가장 큰 수를 추적 best라는 변수를 선언하는 것입니다. best을 배열 a[0]의 첫 번째 요소로 설정합니다. 그런 다음 best보다 작은 배열의 첫 번째 요소를 확인하십시오.

best = a[0]; 
for (i = 1; i < len; i++) 
{ 
    if (a[i] > best) 
     best = a[i]; 
    else if (a[i] < best) 
     break; 
} 
printf("%d is the first larger number.\n", best); 
0

! 당신은 결코 말하지 않는다 : next = a[++i]; a[i] > a[next]보다 !! a[next]은 배열의 크기를 초과 할 수 있습니다

EX : u는 무엇을하고 있는지

A[] = {0, 7, 2, 3, 1}

next = A[1] = 7

A[next] = A[7] = !! //what u think it is?