저는 현재 학교에서 C++을 배우고 있으며 제출해야하는 프로젝트의 일부로 단어를 쓰고 있습니다. 이를 위해, 나는 알파벳과 다른 필요한 것들 (단서, 규칙 등)의 그리드를 이미 만들었습니다. 나는 좌표의 형태로 정수형 배열을 취하고 사용자가 배열의 4 개 값을 입력하여 초기 행과 열 번호와 마지막 행과 열 번호를 나타냅니다.이 행 번호는 a와 b의 첫 번째 및 마지막 알파벳입니다. 특정 단어.이 코드 조각이 예기치 않은 결과를 반환하는 이유는 무엇입니까?
이 작업을 수행 한 후 사용자가 입력 한 배열을 해당 단어의 좌표가있는 이미 정의한 배열과 비교하고 있습니다. 이것은 여기에 도시되어있다 : 여기서
cout<<"Enter the coordinates of starting and final characters : row1 col1 row2 col2 "<<endl;
for (z = 0; z < 4; z++) //first for loop
cin>>p[z]; //taking the input as an array 'p'
for (b = 0; b < 4; b++) //second for loop
{
if (p[b] == messi[b])
b+=0;
}
if (b == 4)
cout<<"Great!!!! You have answered the question correctly"<<"\n\n";
else
cout<<"You got this one wrong mate! Try again :)"<<"\n\n";
는 메시 [B] 그리드에 단어 "메시"에 대응하는 좌표를 갖는 어레이이다. 이제, 두 번째 for 루프 이후의 'if'문에 b = 3인지 확인하는 조건이 포함되어 있어야합니다.하지만 그렇게하면 출력이 항상 'else'문에서 말하는 "ie"가됩니다. 즉, 당신은 이걸 ... "모든 입력에 대해. 그러나 b = 4인지 확인하기 위해 조건을 부과하면 결과는 모든 입력에 대해 'if ...'문구에 'Great !! ...'라고 표시됩니다.
내가 뭘 잘못 했니? 나는 당신에게 문제를 설명 할만큼 분명하다는 희망을 갖고 있습니다. CodeBlocks 16.01을 사용하고 있습니다.
'b + = 0;'에서 무엇을 기대합니까? 그리고 루프를 감싸는 것으로부터 무엇을 기대합니까? – Jarod42
출력을 붙일 수 있습니까 –
글쎄, 내 출력 화면에서 거기에서 콘텐츠를 복사 할 수 없습니다. – Saksham