월레스와 그로밋: 코딩의 날

369 본문

Etc/C

369

구운 감자 2025. 1. 26. 17:36
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

// 1 ~ (입력숫자) -> 범위 내 3,6,9 'x'으로 변경
void test1()
{
	// 정수 입력
	int num1;

	printf("숫자를 입력하세요 >> ");
	scanf("%d", &num1);

	// 입력한 정수까지 나오게하기
	for (int i = 1; i <= num1; i++)
	{
		// 10의 배수일때 다음줄로 넘어가기
		if (i % 10 == 0)
		{
			// 10의 배수 중 10의 자리가 3,6,9 일 때
			if (i / 10 == 3 || i / 10 == 6 || i / 10 == 9)
			{
				printf("x\n");
			}
			else
			{
				printf("%d\n", i);
			}
		}
		else
		{
			// i의 10의 자리가 3,6,9일 때
			if (i/10==3 || i/10==6 || i/10==9)
			{
				// i의 10의 자리가 3,6,9인 수 중 1의 자리도 3,6,9 일 때 xx
				if (i % 10 == 3 || i % 10 == 6 || i % 10 == 9)
				{
					printf("xx\t");
				}
				// i의 10의 자리가 3,6,9인 수 중 1의 자리가 3,6,9가 아닐 때 x
				else
				{
					printf("x\t");
				}
			}
			// i의 1의 자리가 3,6,9일때 x
			else if (i % 10 == 3 || i % 10 == 6 || i % 10 == 9)
			{
				printf("x\t");
			}
			else
			{
				printf("%d\t", i);
			}
		}
	}
	printf("\n");
}

// 1 ~ (입력숫자) -> 범위 내 3,6,9 '짝'으로 변경
void test2()
{
	int num;

	printf("정수를 입력하시오 >> ");
	scanf("%d", &num);

	for (int i = 1; i <= num; i++)
	{
		int ten = i / 10;
		int one = i % 10;

		if (i % 10 == 0)
		{
			if (ten == 3 || ten == 6 || ten == 9)
			{
				printf("짝\n");
			}
			else
			{
				printf("%d\n", i);
			}
		}
		else
		{
			if (ten == 3 || ten == 6 || ten == 9)
			{
				if (one == 3 || one == 6 || one == 9)
				{
					printf("짝짝\t");
				}
				else
				{
					printf("짝\t");
				}
			}
			else if (one == 3 || one == 6 || one == 9)
			{
				printf("짝\t");
			}
			else
			{
				printf("%d\t", i);
			}
		}
		
	}
}

// (입력숫자1) ~ (입력숫자2) -> 범위 내 3,6,9 'X'으로 변경, X 개수 카운트
void test3()
{
	// 정수 2개 입력받기
	int num1, num2;
	char x = 'X';
	char xx[3] = "XX";
	char a = ' ';

	printf("Input num >> ");
	scanf("%d %d", &num1, &num2);

	if (num1 <= 0 || num1 > 100 || num2 <= 0 || num2 > 100)
		printf("오류입니다.\n");

	else
	{
		/*int start_num = num1 >= num2 ? num2 : num1;
		int end_num = num1 >= num2 ? num1 : num2;*/

		if (num1 > num2) {
			int tmp = num1;
			num1 = num2;
			num2 = tmp;
		}

		/*for (int i = 1; i <= start_num - 1; i++)
		{
			if (i % 10 == 0)
				printf("%-5c\n", a);
			else
				printf("%-5c", a);
		}*/

		int count = 0;

		for (int i = 1; i <= num2; i++)
		{
			int one = i % 10;  // 1의 자리 숫자
			int ten = i / 10;  // 10의 자리 숫자

			// num1 보다 작은 공백 출력
			if (i < num1) {
				printf("%-5c", a);
			}
			// 1의 자리와 10의 자리 둘다 3,6,9일때
			else if ((one % 3 == 0 && one != 0) && (ten % 3 == 0 && ten != 0))
			// if ((one == 3 || one == 6 || one == 9) && (ten == 3 || ten == 6 || ten == 9))
			{
				printf("%-5s", xx);
				count += 2;
			}
			// 1의 자리 또는 10의 자리 숫자만 3,6,9 일때
			else if ((one % 3 == 0 && one != 0) || (ten % 3 == 0 && ten != 0))
			{
				printf("%-5c", x);
				count += 1;
			}
			// 10자리 숫자만 3,6,9 일때
			//else if ((ten == 3 || ten == 6 || ten == 9) && (one != 3 || one != 6 || one != 9))
			//{
			//	// 1의 자리숫자가 0이면 줄바꿈
			//	if (one == 0)
			//		printf("%-5c\n", x);
			//	else
			//		printf("%-5c", x);
			//count += 1;
			//}
			else
			{
				/*if (one == 0)
					printf("%-5d\n", i);
				else*/
				printf("%-5d", i);
			}
			if (i % 10 == 0)
				printf("\n");
		}
		
		printf("\n\nX count >> %d\n", count);
	}
}

int main()
{
	test1();
	// test2();
	// test3();

	return 0;
}

output

 

test1()

숫자를 입력하세요 >> 50
1       2       x       4       5       x       7       8       x       10
11      12      x       14      15      x       17      18      x       20
21      22      x       24      25      x       27      28      x       x
x       x       xx      x       x       xx      x       x       xx      40
41      42      x       44      45      x       47      48      x       50

test2()

정수를 입력하시오 >> 50
1       2       짝      4       5       짝      7       8       짝      10
11      12      짝      14      15      짝      17      18      짝      20
21      22      짝      24      25      짝      27      28      짝      짝
짝      짝      짝짝    짝      짝      짝짝    짝      짝      짝짝    40
41      42      짝      44      45      짝      47      48      짝      50

test3()

Input num >> 1 50
1    2    X    4    5    X    7    8    X    10
11   12   X    14   15   X    17   18   X    20
21   22   X    24   25   X    27   28   X    X
X    X    XX   X    X    XX   X    X    XX   40
41   42   X    44   45   X    47   48   X    50


X count >> 25

'Etc > C' 카테고리의 다른 글

rsp_game(묵찌빠 게임)  (0) 2025.01.26
hourglass(모래시계)  (0) 2025.01.26
스택(stack)  (0) 2023.07.31
이중연결리스트 사용 예시 (대기자명단)  (0) 2023.07.27
노드(Node)  (0) 2023.07.26