Programming/C

c언어 주민번호 예제

fishersheep 2021. 8. 13. 01:21
반응형
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


void Fun(char name[10], char major[10], int year[7])
{	

	int temp=0;
	int gen=0;

	char lp[20];
	char fg[20];

	int count = 0;

	int yre = 0;
	int mre = 0;
	int dre = 0;

		mre = year[2] * 10 + year[3];
		dre = year[4] * 10 + year[5];

		if (year[6] == 1)
		{
			yre = 1900 + (year[0] * 10) + year[1]; 
			gen = 1;
		}
		else if (year[6] == 2)
		{
			yre = 1900 + (year[0] * 10) + year[1]; 
			gen = 2;
		}
		else if (year[6] == 3)
		{
			yre = 2000 + (year[0] * 10) + year[1];
			gen = 1;
		}
		else if (year[6] == 4)
		{
			yre = 2000 + (year[0] * 10) + year[1];
			gen = 2;
		}
		else if (year[6] == 5)
		{
			yre = 1900 + (year[0] * 10) + year[1];
			gen = 3;
		}
		else if (year[6] == 6)
		{
			yre = 1900 + (year[0] * 10) + year[1];
			gen = 4;
		}
		else if (year[6] == 7)
		{
			yre = 2000 + (year[0] * 10) + year[1];
			gen = 3;
		}
		else if (year[6] == 8)
		{
			yre = 2000 + (year[0] * 10) + year[1];
			gen = 4;
		}
		else if (year[6] == 9)
		{
			yre = 1800 + (year[0] * 10) + year[1];
			gen = 1;
		}
		else if (year[6] == 0)
		{
			yre = 1800 + (year[0] * 10) + year[1];
			gen = 2;
		}
		
		if (yre % 4 == 0 && yre % 100 != 0)
			temp = 1;
		else if (yre % 400 == 0)
			temp = 1;
		else
			temp = 0;

		if (temp == 1)
			strcpy(lp, "윤년");
		else if (temp == 0)
			strcpy(lp, "윤년아님");

		if (gen == 1)
			strcpy(fg, "대한민국,남자");
		else if (gen == 2)
			strcpy(fg, "대한민국,여자");
		else if (gen == 3)
			strcpy(fg, "외국,남자");
		else if (gen == 4)
			strcpy(fg, "외국,여자");

		printf("%s, %d년 %d월 %d일,%s,%s,%s\n", name, yre, mre, dre, lp, fg, major);
		printf("\n");
}

int main()
{	
	printf("3명의 학생 정보를 입력하시오.\n");
	printf("--------------------------------\n");

	char major[10];
	char name[10];
	int year[7];

	printf("이름: ");
	scanf("%s", name);

	printf("학과: ");
	scanf("%s", major);

	printf("주민등록번호:");
	for (int i = 0; i < 7; i++)
	{
		scanf("%1d", &year[i]);
	}

	Fun(name, major, year);

	char major2[10];
	char name2[10];
	int year2[7];

	printf("이름: ");
	scanf("%s", name2);

	printf("학과: ");
	scanf("%s", major2);

	printf("주민등록번호:");
	for (int i = 0; i < 7; i++)
	{
		scanf("%1d", &year2[i]);
	}

	Fun(name2, major2, year2);

	char major3[10];
	char name3[10];
	int year3[7];

	printf("이름: ");
	scanf("%s", name3);

	printf("학과: ");
	scanf("%s", major3);

	printf("주민등록번호:");
	for (int i = 0; i < 7; i++)
	{
		scanf("%1d", &year3[i]);
	}

	Fun(name3, major3, year3);

	printf("============================\n");

	Fun(name, major, year);
	Fun(name2, major2, year2);
	Fun(name3, major3, year3);

	return 0;
}
반응형

'Programming > C' 카테고리의 다른 글

c언어 입력한정수들의 곱셈  (0) 2021.08.13
C언어 날짜계산 예제  (0) 2021.08.13
c언어 숫자맞추기 예제  (0) 2021.08.13
c언어 이름,학번,총점 순서정렬하기  (0) 2021.08.13
c언어 텍스트 파일 활용예제  (0) 2021.08.13