C++/문제풀이
[C++] 연도를 입력한 뒤 월별 일수 출력하기
year.number
2022. 6. 14. 14:23
실습문제 8-1
void printArray(int inumbers[], int from, int to);
void daysInMonth(int year, int days[], int size);
[목표] 함수와 배열을 이용하여 월별 일수 출력
//
// main.cpp
//
// Created by yeonsu on 2022/06/14.
//
// 연도를 입력한 뒤 월별 일수 출력하기
#include <iostream>
#include <ctime> //rand 함수
#include <iomanip>
using namespace std;
void printArray(int inumbers[], int from, int to);
void daysInMonth(int year, int days[], int size);
int main(){
cout << "연도를 입력하세요: ";
int input_year;
cin >> input_year;
cout << input_year << "년도 월별 일수: " << endl << endl;
cout << endl;
int year[13];
daysInMonth(input_year, year, 13);
printArray(year, 1,12);
return 0;
}
// 일차원 배열 출력(인덱스 + 구분자 + 배열)
void printArray(int inumbers[], int from, int to){
//인덱스 추력
for(int i = from; i<=to; i++)
cout << setw(5) << i;
cout << endl;
cout << " ";
//구분자 출력
for (int i = from; i <=to; i++)
cout << "----+";
cout << endl;
//배열 출력
for (int i = from; i <= to; i++)
cout << setw(5) << inumbers[i];
cout << endl << endl;
}
//월별 일수 계산
void daysInMonth(int year, int days[], int size){
for (int i = 1; i <= size; i++){
if ( i == 1 || i == 3 || i == 5 ||i == 7 ||i == 8 ||i == 10 ||i == 12){
days[i] = 31;
}
else if (i == 4 ||i == 6 ||i == 9 ||i == 11){
days[i] = 30;
}
else if(i == 2){
if (((year % 4 == 0) && (year % 100 == 0)) || year % 400 == 0)
days[2] = 29;
else
days[2] = 28;
}
}
}