차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
activity:public:2021:cpp:210506 [2021/05/06 22:45:38] – FizzBuzz 예제 답안 추가 davidactivity:public:2021:cpp:210506 [2021/05/20 21:45:59] (현재) – 시간/장소/참가자 틀 서식 통일 david
줄 1: 줄 1:
 +======C++ 스터디 #4: Phase 1 복습 및 심화내용======
 +
 +| 시간 | 2021년 5월 6일 목요일 20:30 ~ 22:10 |
 +| 장소 | Google Meet |
 +| 참가자 | - |
 +
 +{{youtube>nC-UocXn6-0?medium}}
 +
 +출처: https://boycoding.tistory.com/186?category=1009239 [소년코딩]
 +
 +=====1. Phase 1 복습=====
 +
 +=====2. switch문=====
 +switch 표현식이 값을 평가하고, 각 case 레이블의 값과 같은지 테스트합니다. 레이블의 값과 같으면 레이블 뒤의 명령문을 실행합니다. 일치하는 레이블이 없으면 default 뒤의 명령문을 실행합니다.
 +
 +====2.1. switch문 예시====
 +
 +<sxh cpp>
 +#include <iostream>
 +using namespace std;
 +
 +int main()
 +{
 +    int num;
 +    cin >> num;
 +
 +    switch(num)
 +    {
 +    case 1:
 +        cout << "One";
 +        break;
 +    case 2:
 +        cout << "Two";
 +        break;
 +    default:
 +        cout << "Unknown";
 +        break;
 +    }
 +
 +    return 0;
 +}
 +</sxh>
 +
 +\\
 +
 +=====3. 예제=====
 +
 +====3.1. switch문 예제====
 +
 +\\
 +
 +<fs large>**출력**</fs>
 +
 +표준 입력으로 문자 'f', 'c', 'p' 중 하나가 입력됩니다. 입력된 문자가 'f'라면 "환타", 'c'라면 "콜라", 'p'라면 "포카리스웨트"를 출력하고, 아무 문자에도 해당되지 않으면 "판매하지 않는 메뉴"를 출력하는 프로그램을 만드세요.
 +
 +
 +\\
 +
 +<fs large>**출력 예시**</fs>
 +
 +<sxh; gutter: false>
 +f
 +환타
 +</sxh>
 +
 +\\
 +
 +<fs large>**코드**</fs>
 +
 +<sxh cpp>
 +#include <iostream>
 +using namespace std;
 +
 +int main()
 +{
 + char menu;
 + cin >> menu;
 +
 + switch (menu)
 + {
 + case 'f':
 + cout << "환타";
 + break;
 + case 'c':
 + cout << "콜라";
 + break;
 + case 'p':
 + cout << "포카리스웨트";
 + break;
 + default:
 + cout << "판매하지 않는 메뉴";
 + break;
 + }
 +
 + return 0;
 +}
 +</sxh>
 +
 +\\
 +
 +====3.2. 별 기호(*)로 가로 5 세로 4 직사각형 그리기====
 +
 +\\
 +
 +<fs large>**출력 예시**</fs>
 +
 +<sxh; gutter: false>
 +*****
 +*****
 +*****
 +*****
 +</sxh>
 +
 +\\
 +
 +<fs large>**코드**</fs>
 +
 +<sxh cpp>
 +#include <iostream>
 +using namespace std;
 +
 +int main()
 +{
 + for (int i = 1; i <= 4; i++)
 + {
 + for (int j = 1; j <= 5; j++) 
 + {
 + cout << "*";
 + }
 +
 + cout << endl;
 + }
 +
 + return 0;
 +}
 +</sxh>
 +
 +\\
 +====3.3. 별 기호(*)로 5층 계단 그리기 ====
 +
 +\\
 +
 +<fs large>**출력 예시**</fs>
 +
 +<sxh; gutter: false>
 +*
 +**
 +***
 +****
 +*****
 +</sxh>
 +
 +\\
 +
 +<fs large>**코드**</fs>
 +
 +<sxh cpp>
 +#include <iostream>
 +using namespace std;
 +
 +int main()
 +{
 + for (int i = 1; i <= 5; i++)
 + {
 + for (int j = 1; j <= i; j++) 
 + {
 + cout << "*";
 + }
 +
 + cout << endl;
 + }
 +
 + return 0;
 +}
 +</sxh>
 +
 +\\
 +====3.4. 별 기호(*)로 5층 역삼각형 그리기====
 +
 +\\
 +
 +<fs large>**출력 예시**</fs>
 +
 +<sxh; gutter: false>
 +*****
 + ****
 +  ***
 +   **
 +    *
 +</sxh>
 +
 +\\
 +
 +<fs large>**코드**</fs>
 +
 +<sxh cpp>
 +#include <iostream>
 +using namespace std;
 +
 +int main()
 +{
 + for (int i = 1; i <= 5; i++)
 + {
 + for (int j = 1; j <= 5; j++) 
 + {
 + if (j < i)
 + cout << " ";
 + else
 + cout << "*";
 + }
 +
 + cout << endl;
 + }
 +
 + return 0;
 +}
 +</sxh>
 +
 +\\
 +====3.5. 별 기호(*)로 5층 산 모양 그리기====
 +
 +\\
 +
 +<fs large>**출력 예시**</fs>
 +
 +<sxh; gutter: false>
 +    *
 +   ***
 +  *****
 + *******
 +*********
 +</sxh>
 +
 +\\
 +
 +<fs large>**코드**</fs>
 +
 +<sxh cpp>
 +#include <iostream>
 +using namespace std;
 +
 +int main()
 +{
 + for (int i = 1; i <= 5; i++)
 + {
 + for (int j = 1; j <= 9; j++)
 + {
 + if (j > 5 - i && j < 5 + i)
 + cout << "*";
 + else
 + cout << " ";
 + }
 +
 + cout << endl;
 +}
 +</sxh>
 +
 +\\
 +====3.6. FizzBuzz====
 +
 +\\
 +
 +<fs large>**출력**</fs>
 +
 +1부터 100까지 자연수를 차례대로 출력하는데, 3의 배수면 숫자 대신 ‘Fizz’를 출력, 5의 배수면 ‘Buzz’를 출력, 둘 다 해당되면 ‘FizzBuzz’를 출력하도록 하는 프로그램을 작성하세요.
 +
 +\\
 +
 +<fs large>**출력 예시**</fs>
 +
 +<sxh; gutter: false>
 +1
 +2
 +Fizz
 +4
 +
 +.
 +.
 +.
 +
 +98
 +Fizz
 +Buzz
 +</sxh>
 +
 +\\
 +
 +<fs large>**코드**</fs>
 +
 +<sxh cpp>
 +#include <iostream>
 +using namespace std;
 +
 +int main()
 +{
 + for (int i = 1; i <= 100; i++)
 + {
 + if (i % 3 == 0 && i % 5 == 0)
 + cout << "FizzBuzz" << endl;
 + else if (i % 3 == 0)
 + cout << "Fizz" << endl;
 + else if (i % 5 == 0)
 + cout << "Buzz" << endl;
 + else
 + cout << i << endl;
 + }
 +
 + return 0;
 +}
 +</sxh>
 +아래와 같이 ''else''와 ''&&'' 없이도 구현이 가능합니다.
 +<sxh cpp>
 +#include <iostream>
 +using namespace std;
 +
 +int main(){
 + for (int i = 1; i <= 100; i++) {
 + bool nothing = true;
 +
 + if (i % 3 == 0){  //3의배수
 + cout << "Fizz";
 + nothing = false;
 + }
 +
 + if (i % 5 == 0){  //5의배수
 + cout << "Buzz";
 + nothing = false;
 + }
 +
 + if(nothing){  //3의배수도, 5의배수도 아닌
 + cout << i;
 + }
 +
 + cout << endl;
 + }
 + return 0;
 +}
 +</sxh>
 +\\
 +
 +
 +
 +