최신화하기
170
작성한 질문수 9
#include <iostream>
#include <ctime>
using namespace std;
struct TM {
int tm_year;
};
int main()
{
time_t timer = time(NULL);
struct tm* t = localtime(&timer);
int yeardb, year = t->tm_year + 1900, age;
char Id[20];
cin >> Id; // 주민번호 입력
// 성별 계산
if (Id[7] == '1' || Id[7] == '2')
{
yeardb = 1900 + ((Id[0]-48) * 10 + (Id[1]-48)); // 특정 문자열의 문자숫자를 숫자로 변환하기 위해서는 '0' 문자0의 아스키 십진수인 48을 뺀다.
}
else
{
yeardb = 2000 + ((Id[0]-48) * 10 + (Id[1]-48));
}
age = year - yeardb + 1;
printf("%d ", age);
if (Id[7] == '1' || Id[7] == '3')
printf("M\n");
else
printf("W\n");
return 0;
}
24년 기준 53세
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
강의에서 다루어진 예제와 유사한 문제 해결에 대한 질문을 주셨네요. 주어진 코드의 주요 기능은 주민등록번호를 통해 나이를 계산하고 성별을 판단하는 것인데요. 코드에서 tm_year를 통해 현재 연도를 얻어와 이를 기반으로 나이를 계산하고 있습니다.
질문하신 내용과 관련된 기존 Q&A에서 참고할 만한 글은 아래와 같습니다:
“age 초기화를 위에서 하면 왜 올바른 값이 나오지않는거죠?”
이 글에서는 연도(year) 변수를 초기화하는 단계의 중요성에 대해 설명하고 있습니다. 초기에 잘못된 값이 있을 경우, 이후 계산에 문제가 발생할 수 있습니다.“5번 문제 코드 질문”
런타임 에러 관련하여, 주민등록번호의 특정 자리를 잘못 사용할 경우 어떻게 에러가 발생할 수 있는지를 다루고 있습니다.“c++ [4.나이차이] 질문드립니다.”
벡터를 사용하여 문제를 해결하는 다른 방법론을 공유하면서 인덱스를 잘 사용하는 법을 다룹니다.
귀하의 코드는 기본적으로 연도 계산과 성별 판단에 문제가 없어 보입니다만, 특정 연도를 기준으로 나이를 계산할 때 반드시 최신화된 연도를 사용하고 있는지, 특히 tm_year에 의존하여 얻은 것이 정확한 데이터인지 확인해야 합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
87번 채점 프로그램에 오류가 있는 것 같습니다.
0
87
2
그리디 파트
0
114
2
안녕하세요. 선생님(54번 코드 관련 문의)
0
141
2
테스트 파일 exit_coe_1, time_limit_exceeded 질문
0
142
1
C언어로 코드를 짜면 채점 시에 한 문제 빼고 시간 초과가 발생하는데 해결하는 방법이 있을까요?
0
171
1
19번 질문있습니다
0
121
1
6번 관련 채점오류입니다
0
87
2
22번 문제는 C로 풀어주신 건가요 C++로 풀어주신 건가요?
0
165
2
dev C++ 콘솔창 바로 닫힘
0
245
1
채점이 안되요...
1
260
1
안녕하세요 강사님 정렬에 대해서 설명이 조금 더 듣고 싶습니다.
0
113
1
45번 공주구하기 문제를 list를 이용해서 이렇게 풀어도 될까요?
0
155
1
39번 두 배열 합치기 문제 채점 오류인가 코드 오류인가
0
154
0
채점기에서 틀렸다고 나오는데 이유를 모르겠습니다.
0
148
2
해당 강의에서 C언어로만 진행하는 강의 문의 건
0
143
2
87번 문제 섬나라 아일랜드 질문
0
128
1
16번 문제에서 직접 답을 대입하면 정답이 나오는데 채점에서 wrong answer가 나옵니다.
0
148
1
40번 교집합 문제
0
166
1
43번 뮤직비디오 문제 테스트케이스 4번을 만족 못합니다.
0
168
1
41. 연속된 자연수의 합 문제 질문있습니다.
0
164
1
질문있습니다.
0
191
2
시간초과가 나요
0
172
1
43번 문제 3 ~ 5번에 문제가 있는것 같습니다.
0
247
1
43번 채점결과
0
413
2





