C언어/예제

[C] 서수(ordinal numeral)로 변환하는 프로그램

thpop 2024. 10. 19. 23:06
반응형

100 미만의 양의 정수를 입력받아 서수(ordinal numeral)로 변환하는 프로그램을 만들어 볼 것이다.

 

서수란 첫째, 둘째, 셋째와 같이 순서를 나타내는 숫자의 형태이다.

 

프로그램은 아래와 같다.

#include <stdio.h>

int main() {
	int n;
	scanf("%d",&n);
	if (n>=11 && n<=13)
		printf("%dth",n);
	else if (n%10==1 && n!=11)
		printf("%dst",n);
	else if (n%10==2 && n!=12)
		printf("%dnd",n);
	else if (n%10==3 && n!=13)
		printf("%drd",n);
	else
		printf("%dth",n);
	return 0;
}

 

이 프로그램을 작성할 때 주의해야 할 점은 예외 상황을 고려해야 한다는 것이다.

21, 22, 23같은 경우는 각각 21st, 22nd, 23rd로 표현되나, 11, 12, 13은 11th, 12th, 13th로 표현되어 예외임을 주의해야 한다. 이 점만 주의하면 손쉽게 프로그램을 구성할 수 있다.

 

시행 결과 예시는 아래와 같다.

11
11th
3
3rd
반응형