2017-03-01 3 views
0

나는 함수에 25 행 이상을 사용할 권한이 없습니다. 내 기능 중 하나는 26 줄 밖에 없으므로 간단하게하려고합니다. 나는 동안 상태에서 ++ 작은 ++ 큰있을 수 있습니다 방법 1. 에서 크고 작은잠시 동안 변수 증분 사용

char *name(int big, int small, int nb, char *tab) 
{ 
    while (big < nb) 
    { 
     small = 1; 
     while (small < nb) 
     { 
      .... 
      printf("here are the other lines\n"); 
      .... 
      small++; 
     } 
    big++; 
    } 
    return (tab); 
} 

를 초기화된다?

while (big++ && big < nb)을 시도했지만 왜 작동하지 않습니까? 내가 방금 발견 한 유일한 방법은 while ((big = big + 1) && big < nb)

누구나 첫 번째 방법이 효과가없는 이유를 설명하고 다른 해결책이 있다면 설명해 줄 수 있습니까?

감사

+1

어쩌면'while (big ++

+2

바깥 쪽 루프의 반복마다 값을 변경하면 매개 변수로 'small'을받는 점은 무엇입니까? – StoryTeller

+0

내부 루프는'for' 루프로 쉽게 대체 될 수 있습니다 : for (int small = 1; 작은

답변

2

당신은 아마이 (당신의 솔루션에 비해 두 줄 이하) 원하는 :

char *name(int big, int nb, char *tab) 
{ 
    while (big++ < nb) 
    { 
     int small = 1; 
     while (small++ < nb) 
     { 
      .... 
      printf("here are the other lines\n"); 
      .... 
     } 
    } 
    return tab; 
} 

면책 조항 :이 테스트되지 않은 코드입니다. 당신이 시험에 big이전를 증가 while (big++ && big < nb)

while (big < nb) 
{ 
    ... 
    big++; 
} 

:이 같은 일이 간단하지 않기 때문에

while (big++ && big < nb)

은 작동하지 않습니다. 원래 코드 big에서 이 증가한 후 테스트가 진행됩니다.

BTW : while ((big = big + 1) && big < nb)while (big++ < nb)과 동일합니다.

+0

전후의 증분에 대해서는 시도하기 위해 1 대신 값을 0으로 변경하지만 내 프로그램은 잠시 동안 입력하지 않았습니다. 그 외, 코드가 내 질문에 대답하면, 그런 식으로 생각하지 않았습니다! 감사합니다. – f42