바람이 머문 언덕
구구단 파일에 출력하기 본문
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;
}