c언어 소스코드에 대해 질문 있습니다.

학교 과제를 수행하며 나름 열심히 소스코드를 만들어보았습니다.
문제는 아래와 같습니다. 위는 문제의 조건이고, 아래는 문제 출력 결과물의 예시입니다.
그런데, 주민등록번호는 정상적으로 출력이 되는 반면, 이름과 학과를 추가한 코드는 어떻게 짜야할지 감이 잡히지 않아 질문 드립니다. 감사합니다.


KakaoTalk_20200520_165247245

#include <stdio.h>
#include <stdlib.h>

void printInfo(const char* str) 

{
	char strToInt[5];
	int year;
	
	if(str[6]=='9' || str[6]=='0')
	
	{
		strToInt[0] = '1';
		strToInt[1] = '8';
	}
	
	else if(str[6] == '1' || str[6] == '2' || str[6] == '5' || str[6] == '6')
	
	{
		strToInt[0] = '1';
		strToInt[1] = '9';
	}
	
	else if(str[6] == '3' || str[6] == '4' || str[6] == '7' || str[6] == '8')
	
	{
		strToInt[0] = '2';
		strToInt[1] = '0';
	} 
	 
	strToInt[2] = str[0];
	strToInt[3] = str[1];
	strToInt[4] = 0;
	
	year = atoi(strToInt);
	printf("%d년", year);
	
	if(str[2] == '0')
		printf("%c월", str[3]);
	
	else
		printf("%c%c월", str[2], str[3]);
		
	if(str[4] == '0')
		printf("%c일", str[5]); 
		
	else
		printf("%c%c일", str[4], str[5]);
		
	if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
		printf(", 윤년");
		
	if(str[6] >= '5' && str[6] <= '8')
		printf(", 외국인");
		
	else
		printf(", 대한민국");
		
	if(str[6] % 2 == 1)
		printf(", 남자\n");
		
	else
		printf(", 여자\n");
		
}

int main() 
{
	char resNum[15];
	int i;
	printf("주민등록번호: ");
	scanf("%s", resNum);
	
	if(resNum[6] == '-')
	
	{
		for(i = 7; i<15, i++;)
		
		{
			resNum[i-1] = resNum[i];
		}
	}
	
	printInfo(resNum);
	return 0;
}

안녕하세요.

구조체를 사용하면 쉽게 구현할 수 있을겁니다. ㅎㅎㅎㅎ

3 Likes

답변 진심으로 감사드립니다~! 혹시 소스코드 짜주실 수 있으신가요? 아직 초보자라 고수님 것을 보면서 이해해보고 싶습니다!

스스로 해보시면 더 재미나고 이해도 더 잘 될겁니다.

일단 오늘까지는 스스로해보세요 :smiley:

2 Likes

우와! 혼자서 몇 시간 동안 쥐어짜낸 끝에 드디어 소스코드를 구현해냈습니다…!

6 Likes