중첩 루프에 대해 올바른 생각을 갖고 있지만 현재 코드는 몇 가지 공백과 개행 문자 만 출력합니다. 이제 당신의 코드 라인별로 살펴 보자 :
for (int i=0 ; i < 5; i++)
이 루프에서 반복자는 0에서 시작하고 사에서 끝납니다. 0부터 시작하는 것은 많은 경우에 허용하지만, 그것은이 변경해야합니다, 너무 1. 시작하기 위해 여기에 훨씬 쉽게 : 이제
for (int = 1; i <= 5; i++)
, 다음의 행.
cout << " ";
모든 것은 공백을 인쇄합니다. 전화 번호가 있지만 그걸로 아무 것도하지 않습니다. 당신과 같이, 공간 전에 i
를 인쇄해야합니다 :
cout << i << " ";
우리는 두 번째 (내부) 루프에서 다시 문제로 실행합니다.
for (int j = 0; j>=i; j ++)
cout << endl;
j
을 0으로 초기화하는 것이 좋습니다. 그러나 조건부 j >= i
은 j
이 i
이상인 경우 루프가 실행을 계속한다는 것을 의미합니다. 9보다 작거나 같으면 실행하십시오. 또한 루프 내부에서 수행하는 작업은 개행을 인쇄하는 것입니다.당신은 i
및 j
의 제품을 인쇄로 변경해야합니다
for (int j = 0; j <= 9; j++)
cout << (i * j) << " ";
당신이 모두 함께 넣어하면 다음 코드와 같은 결과가 발생해야한다. 몇 가지 추가 서식을 추가하고 명확성을 위해 몇 가지 식별자를 변경했습니다.
#include <iostream>
#include <iomanip> // Needed for std::setw, which makes sure everything lines up.
int main()
{
for (int firstNumber = 1; firstNumber <= 5; firstNumber++)
{
std::cout << std::setw(3) << firstNumber << " | "; // Output the first number of the row. This makes up the first column.
for (int secondNumber = 0; secondNumber <= 9; secondNumber++)
{
std::cout << std::setw(3) << (firstNumber * secondNumber) << " "; // Output the rest of the numbers in the row.
}
std::cout << std::endl; // We're done with the row, so make a linebreak.
}
}
희망이 있습니다.
이것은 다섯 줄의 ""(공백 문자)와 그 뒤에 개행 문자를 인쇄합니다. 그게 니가 원하는거야? –
@Lily, 다음 번에 코드 서식을 지정하십시오. 표시 한 코드가 문제와 아무런 관련이없는 것 같습니다. 무엇을 묻고 있습니까? –
@Carl이 저를 이길 것입니다. – mastofact