2017-11-27 1 views
-3
int main(){ 
const int ITEMS = 5; 
double prices[ITEMS]; 
double total = 0; 

while (total!=1000){ 

    for (int i=0; i<ITEMS; i++){ 
     cout << "Enter price of item: "; 
     cin >> prices[i]; 
     total += prices[i]; 

     if (total > 1000){ 
      total -= prices[i]; 
      prices[i-1]; 

      cout << "Total exceeded limit. Please try again" << endl; 
      } 

     cout << total << " " << i << endl; 

     if (total == 1000) 
      break; 
    }  
} 

return 0; } 

제가 가격 한도를 초과하면 내 질문에 어떻게 배열로 돌아갈 수 있습니까? 예를 들어, 가격을 1000으로 제한하면 합계에서 해당 가격을 뺀 다음 동일한 하위 스크립트로 돌아와 다시 시도해야합니다. 고맙습니다!배열 루프에서 같은 첨자로 어떻게 되돌릴 수 있습니까?

+2

문'가격을 통해 총을 배치 값을 허용하지 않습니다 임시 변통 while 같은 역할을 [내가-1] '하지 않는다 아무것도. –

+0

변수를 1 씩 줄여야 할 필요가있는 경우 변수에서 1을 뺍니다. 'total'이 1000을 넘으면'-i;'를 시도 했습니까? –

+0

@ FrançoisAndrieux 실제로 그것은 아무것도 아닙니다. 잠재적으로 out-of-bounds 메모리 영역에 접근 할 수 있습니다 :) – mcsim

답변

0

당신은 cin >> prices[i > 0 ? --i : 0]; 뭔가를 할 수 있으며, 다음은 1000

관련 문제