바람이 머문 언덕

구구단 파일에 출력하기 본문

컴퓨터 IT/C++ 언어

구구단 파일에 출력하기

알 수 없는 사용자 2009. 12. 29. 22:04
반응형

2에서 9사이의 두 수를 입력 하면 세 줄씩 구구단을 텍스트 파일에 출력합니다.
입력 한 두 수 중에 앞에 값이 작으면 작은 수부터 출력하고
앞에 값이 크면 반대로 큰 수부터 구구단을 출력 합니다.


#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
      FILE* file;
      int i, n, k, k1, s=1, t, t1; // k2,
      file = fopen("temp.txt","wt");  // 파일을 쓰기 위해서 열고 파일이 있으면 데이트는 삭제, 없으면 생성.
      if(file == NULL) return 0;
      printf("2에서 9사이의 두수를 입력하세요: ");
      scanf(" %d %d", &i , &k);   // 출력 할 구구단 범위를 입력 받는다.
      if(i>k) //  먼저 출력 할 구구단이 크면
      {
           s=-1;
      }
      while(i>1 && i<=9)  // 2단에서 9단까지만 출력을 위해서
      {
              for(n=1;n<=9; n++)
             {
                   for( k1=0; k1<3; k1++) // 구구단 3개씩 출력을 위해서
                  {
                        if(s==1 && i+k1 <= k)  // 입력한 두수 중 앞의 값이 작을 시 출력
                             fprintf(file, "  %d * %d = %2d   ", i+k1, n, (i+k1)*n);
                        else if(s==-1 && i+k1*s>= k) // 입력한 두수 중 앞의 값이클 경우 출력
                             fprintf(file, "  %d * %d = %2d   ", i+k1*s, n, (i+k1*s)*n);
                   }

                   fscanf(file, "\n");  // 버그 인지 몰라도 3개를 해야 텍스트 파일에서 줄 바꿈이 되내요. ㅎㅎ;
                   fscanf(file, "\n");
                   fprintf(file, "\n");
             }
             i+=(3*s);  // i값에 3을 더하거나 빼기 위해서
             fprintf(file, "\n");
             fprintf(file, "\n");
             fprintf(file, "\n");
       }
       fclose(file);    // 파일을 닫는다.
       system("PAUSE");  // 구구단 출력 후 프로그램이 바로 종료되지 않게 하기 위해
       return 0;
  }



text.exe