2014-06-23 3 views
0

배열 b[]에 숫자를 numCase 번 입력하고 싶습니다.왜 내 배열에 입력 값이 저장되지 않습니까?

#include <iostream> 
using namespace std; 

//entry point 

int main() 

{ 


//Declarations 

int b[20]; // array size 20 (limit of inputs) 
int c = 0; 
int numCase; 
int input; 





cout << "ENTER NUMBER OF CASES (MAXIMUM NUMBER OF 20): \n"; 
cin >> numCase; 


//checks that numCase is less than or equal to (20) and does not exceed 
if (numCase < 21) 
     { 



// gets input number based on the numCase 

do 
{ 


cout << "ENTER A NUMBER (MAXIMUM OF 5 DIGITS): \n"; 
       cin >> input; 
       cout << "\n"; 
       b[c] = input; 
       c++; 



} while (c != numCase); 


cout << b[c] ; // this is my problem it OUTPUTS RANDOM VALUE, 
    //but i can see on my watch list that b has the values of my input. 
} 

} 

답변

1

변수 c은 0으로 다시 초기화되어야합니다.

} while (c != numCase); 

c = 0; 
+0

희망이 도움하지만 난 B를를 법원 때 [C] 모두 내가 WA있어 첫 번째 입력. 내가 2 개의 입력을 원한다고 말하자면 ex. 20 및 700 my cout은 20 만 표시됩니다. – user3739376

+0

예 - for 루프를 사용하고 카운터를 증가시켜 모든 배열 요소를 표시하는 것이 가장 좋습니다. – suspectus

+0

if if (b (counter) <101) 및 입력 값이 20과 700 인 if 문을 사용해야합니다. 어떻게하면 700이 해당 진술 안에 들어 가지 않도록 할 수 있습니까? 나는 그것을 시도했다 700 안으로 들어간다 – user3739376

2

당신은 bN에 항목을 0를 충전 한 다음에 작성되지 않은 항목 N+1을 인쇄하고

+0

내가 어떤 변경을해야합니까? – user3739376

+0

인쇄 할 때보다 인덱스 1의 인쇄 항목이 적음 b [c] – zoska

0

cout을 < < B [C].; //이 문은 이미 값

0

당신은 [] 는 다음과 같이 코드를 작성할 수 있습니다 b를 배열에 저장된 모든 번호를 표시 할 경우 할당되지 않은 numCase에 도달 c는

for(int i=0;i<=20;i++) 
{ if(b[i]<101) //This will exclude all the values which are greater than 101 
    {cout<<"\n"<<b[i];}} 
+0

for 루프를 시도했지만 모든 입력을 표시합니다. if 문 (즉, (b [counter] <101)이고 입력 값이 20과 700 인 경우 if 문을 사용해야합니다. 어떻게하면 700 문이 내부에 들어 가지 않도록 할 수 있습니까? 나는 그것을 시도했다 700 안으로 들어간다 – user3739376

+0

나는 나의 대답을 편집했다. 네가이 일을하기를 바랄 수도 있기를 바란다. – Shubham

0

나는 이것이 당신이 찾고 될 일을 생각 :

for (int i=0; i<numCase; i++) 
{ 
    if(b[i] >= x) //x is a variable that u can set as a limit. eg. 700 
    { 
     cout<<"\n"<<b[i]; 
    } 
} 

그것이 내가 내가 while 루프 후 0으로 C 초기화 귀하의 제안을 시도

관련 문제