목적
  - 파일 출력을 이해한다.

문제
사용자 삽입 이미지

코드

#include <fstream>

using namespace std;

int main(void)
{
 fstream fOut("gugudan.txt",ios::out);
 int i = 2;
 int j = 1;

 fOut << "==========================================================" << endl;
 fOut << "                            구구단" << endl;
 fOut << "==========================================================" << endl;

 for(i = 2; i <= 9; i = i + 4)
 {
  for(j = 1; j <=9; j++)
   fOut << i << " * " << j << " = " << i * j
    << '\t' << i + 1 << " * " << j << " = " << (i+1) * j
    << '\t' << i + 2 << " * " << j << " = " << (i+2) * j
    << '\t' << i + 3 << " * " << j << " = " << (i+3) * j << endl;

  fOut << "==========================================================" << endl;

 }

 fOut.close();

 return 0;
}

해설
  - for 문에서 {} 치지 않은 문장은 한문장에서 반복을 계속한다고 보시면 됩니다.
  - 다중 for 문이므로 두번째 for 문을 한문장만 반복 수행후 아래 문장의 fOut << "=== ... 구문을 수행합니다.

참고
  - 구구단 유사문제
  - 파일 출력

Posted by 카켈




1. 목적
  - 다중 for 문을 이해한다.

2. 문제 (점수 : 10 점)
  - 중첩된 for 문을 이용하여 구구단의 일부를 출력하라.
  - 출력 화면

4 * 5 = 20      5 * 5 = 25      6 * 5 = 30      7 * 5 = 35
4 * 6 = 24      5 * 6 = 30      6 * 6 = 36      7 * 6 = 42
4 * 7 = 28      5 * 7 = 35      6 * 7 = 42      7 * 7 = 49
4 * 8 = 32      5 * 8 = 40      6 * 8 = 48      7 * 8 = 56
4 * 9 = 36      5 * 9 = 45      6 * 9 = 54      7 * 9 = 63
Press any key to continue


3. 이해
  - 다중 for 문을 정확히 쓸줄 아는가?

4. 코드

#include <stdio.h>

int main()
{
 int i, j;
 i = j = 0;

 for(i = 5; i <10; i++)
 {
  for(j = 4; j < 8; j++)
  {
   printf("%d * %d = %d\t", j, i, j*i);
  }

  printf("\n");

 }

 return 0;
}


5. 해설
  - 이전에 있던 미니 구구단과 크게 다를게 없습니다.
  - for 조건이 j < 8 일때에는 j 가 8일때 까지만 작동하고 9 부터는 조건이 안 맞기 때문에 for 문을 넘어가 다음 for 문을 적용 받습니다.
  - for 문을 실행할때 가장 안 쪽의 for 문에서 시작 하며 인수를 차례차례 적용 받습니다. 실행단계를  생각하면 이해하기가 쉽습니다.

6. 참고

  - http://www.winapi.co.kr/clec/cpp1/4-2-4.htm : 다중 루프
  - 유사 문제
Posted by 카켈



1. 목적
  - 반복문을 이해 한다.

2. 문제
  - 미니 구구단을 만든다.
  - 1단 부터 9단까지 하되 곱셈은 5부터 9까지만 한다.
  - 출력 화면

=============================================
                  미니 구구단
=============================================
 1 * 5 =  5       2 * 5 = 10      3 * 5 = 15
 1 * 6 =  6       2 * 6 = 12      3 * 6 = 18
 1 * 7 =  7       2 * 7 = 14      3 * 7 = 21
 1 * 8 =  8       2 * 8 = 16      3 * 8 = 24
 1 * 9 =  9       2 * 9 = 18      3 * 9 = 27
----------------------------------------------
 4 * 5 = 20       5 * 5 = 25      6 * 5 = 30
 4 * 6 = 24       5 * 6 = 30      6 * 6 = 36
 4 * 7 = 28       5 * 7 = 35      6 * 7 = 42
 4 * 8 = 32       5 * 8 = 40      6 * 8 = 48
 4 * 9 = 36       5 * 9 = 45      6 * 9 = 54
----------------------------------------------
 7 * 5 = 35       8 * 5 = 40      9 * 5 = 45
 7 * 6 = 42       8 * 6 = 48      9 * 6 = 54
 7 * 7 = 49       8 * 7 = 56      9 * 7 = 63
 7 * 8 = 56       8 * 8 = 64      9 * 8 = 72
 7 * 9 = 63       8 * 9 = 72      9 * 9 = 81
----------------------------------------------
Press any key to continue

3. 이해
  - 반복문을 제대로 이해하고 활용할수 있는가?

4. 코드

#include <stdio.h>

int main()
{
 int i, j;
 i = 1;
 j = 5;

 printf("=============================================\n");
 printf("                  미니 구구단\n");
 printf("=============================================\n");

 while(j <= 9)
 {
  printf("%2d * %d = %2d\t %2d * %d = %2d\t %2d * %d = %2d\n", i, j, i * j, i + 1, j, (i+1) * j, (i+2), j, (i+2) * j);
  j++;

 }

 i = 4;
 j = 5;

 printf("----------------------------------------------\n");
 while(j <= 9)
 {
  printf("%2d * %d = %2d\t %2d * %d = %2d\t %2d * %d = %2d\n", i, j, i * j, i + 1, j, (i+1) * j, (i+2), j, (i+2) * j);
  j++;

 }
 
 i = 7;
 j = 5;

 printf("----------------------------------------------\n");
 while(j <= 9)
 {
  printf("%2d * %d = %2d\t %2d * %d = %2d\t %2d * %d = %2d\n", i, j, i * j, i + 1, j, (i+1) * j, (i+2), j, (i+2) * j);
  j++;

 }
 printf("----------------------------------------------\n");


 return 0;
}

5. 해설
  - while 문으로 간단하게 반복문을 구현했습니다.
  - 끊어서 표현 하기 위해서 3번 반복했습니다.

6. 참고
   - http://cakel.tistory.com/2656525 : 반복문 문제

Posted by 카켈
이전페이지 1 다음페이지