티스토리 뷰
반응형
4의 배수이면서 100의 배수는 아니고,
400의 배수인 연도는 윤년이다.
윤년이면 366일이고,
평년이면 365일이다.
사용자에게 연도를 입력받고
윤년인지를 출력해보자.
함수 is_leap(int year)로 작성한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <stdio.h>
void is_leap(int year);
int main()
{
int year;
printf("연도를 입력하시오 : ");
scanf_s("%d", &year);
is_leap(year);
return 0;
}
void is_leap(int year)
{
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
printf("%d년은 366일입니다.", year);
}
else
{
printf("%d년은 365일입니다.", year);
}
}
|
cs |
- 결과
- 설명
is_leap(int year)함수에
윤년의 조건이면
366일을 출력하고,
평년의 조건이면
365일을 출력하는 내용을 선언한다.
main 함수에서
연도를 입력 받아
year에 저장하고
is_leap 함수를 호출하여
저장한 year 변수를
매개변수로 전달한다.
C언어는 절차 지향적이기 때문에,
main 함수 앞에
사용자 정의 함수를 쓰려면
반환형 함수이름(매개변수 자료형);
의 형식인 함수 원형을 써서
컴파일러에게 함수에 대한 정보를
명시적으로 미리 알려주는 것이 좋다.
필자는 부끄럽게도
파이썬 언어와 C언어를 같이 공부하다 보니
is_leap() 함수 안에
int year가 아닌 year만 써주어
오류가 났는데도
도대체 왜 오류가 나는지
이해를 못하고 바둥바둥거렸다.
결론은 C언어는
매개변수에 int, float과 같은
자료형을 꼭 써줘야 한다는 것.
물론 매개변수가 필요 없고
단순 출력만 하는 함수는
void 상태로 가능하다.
함수 원형을 써주지 않고
사용자 정의 함수를
main 함수보다 먼저 선언하는 것도
컴파일 에러가 발생하니
주의하여야겠다.
반응형
'Programming Language > C basic' 카테고리의 다른 글
[C언어] CHAPTER 08 함수 / Programming 07 / 소득세 구하기 (0) | 2021.04.04 |
---|---|
[C언어] CHAPTER 08 함수 / Programming 06 / even(), absolute(), sign() 함수 작성하기 (0) | 2021.04.04 |
[C언어] CHAPTER 08 함수 / 동전 던지기 게임 (앞면이 나온 횟수와 뒷면이 나온 횟수 출력하기) (0) | 2021.04.03 |
[C언어] CHAPTER 08 함수 / 실행할 때마다 발생되는 난수 다르게 하기 (시드 사용) (0) | 2021.04.03 |
[C언어] CHAPTER 07 반복문 / Programming 14 / 사용자가 입력한 정수 거꾸로 출력하기 (0) | 2021.03.29 |
댓글
반응형
Recent Post.
Recent Reply.
- Thanks for comming.
- 오늘은
- 명이 방문했어요
- 어제는
- 명이 방문했어요