5.7 나머지 연산자

공기훈·2021년 8월 17일
0

홍정모의 따배씨

목록 보기
20/49

나누기 연산자 : /
나머지 연산자 : %

int a = 15 % 6;
printf("%d", a);

나머지인 3이 출력된다.

Ex) sec를 입력하면 시간, 분, 초로 나누어주는 시스템.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int hour = 0, min = 0, sec = 0;

	printf("Input seconds : ");
	scanf("%d", &sec);

	min = sec / 60;
	sec %= 60;
	// sec = sec % 60;

	hour = min / 60;
	min %= 60;
	

	printf("%d hours, %d minutes, %d seconds\n", hour, min, sec);
	printf("Good bye");

	return 0;
}

%= 는 대입 연산자.

Ex) 여러 번 콘솔 창을 띄우는 것은 불편하니까 while문을 이용하여 음수가 나올 때 까지 출력해보자.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int hour = 0, min = 0, sec = 0;


	while (sec >= 0) //sec가 0 이상일 경우에는 계속 반복을 한다.
	{
		printf("Input seconds : ");
		scanf("%d", &sec);

		min = sec / 60;
		sec %= 60;
		// sec = sec % 60;

		hour = min / 60;
		min %= 60;


		printf("%d hours, %d minutes, %d seconds\n", hour, min, sec);

	}
	
	printf("Good bye");

	return 0;
}

만약 음수가 입력되었을 때, Good bye만 출력하고 싶다면?

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int hour = 0, min = 0, sec = 0;

	printf("Input seconds : ");
	scanf("%d", &sec);

	while (sec >= 0) //sec가 0 이상일 경우에는 계속 반복을 한다.
	{
		min = sec / 60;
		sec %= 60;
		// sec = sec % 60;

		hour = min / 60;
		min %= 60;

		printf("%d hours, %d minutes, %d seconds\n", hour, min, sec);

		printf("Input seconds : ");
		scanf("%d", &sec);
	}
	
	printf("Good bye");

	return 0;
}

이런 식으로..

음수의 나누기.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int div, mod = 0;

	div = 11 / 5;
	mod = 11 % 5;
	printf("div = %d, mod = %d\n", div, mod);

	div = 11 / -5;
	mod = 11 % -5;
	printf("div = %d, mod = %d\n", div, mod);

	div = -11 / -5;
	mod = -11 % -5;
	printf("div = %d, mod = %d\n", div, mod);

	div = -11 / 5;
	mod = -11 % 5;
	printf("div = %d, mod = %d\n", div, mod);

	return 0;
}

앞의 피연산자가 음수이면 나머지도 음수로 나온다!

profile
be a coding master

0개의 댓글