출처 : 반크_가상독도전시관
참고풀이]
//Dev-C++ 5.11로 작업함.
#include <stdio.h>
#include <string.h> //strlen(), strcpy()
union Number{
char rrn[14];//주민등록번호
char colleague[9];//학번(년도+학년+반+번호)
};
struct Student {
union Number no;
char name[20];//이름
char telephone[12];//전화번호
};
int main()
{
struct Student ban;
char strno[14]={'\0'};//주민번호 또는 학번 입력변수
int i;//반복변수
//자료를 입력합니다.
while(1)
{
printf("주민등록번호 또는 학번을 입력하시오(예:22010101) : ");
scanf("%s%*c",strno); //%*c:Enter Key
if(strlen(strno)==8 || strlen(strno)==13) break;
printf("주민등록번호는 13자리이고, 학번은 8자리 수를 입력하세요.\n");
printf("다시 입력하세요...\n");
}
if(strlen(strno)==8) strcpy(ban.no.colleague,strno);
else strcpy(ban.no.rrn,strno);
printf("이름을 입력하시오(예:박건태) : ");
gets(ban.name);
printf("전화번호를 입력하시오(예:01012341234) : ");
scanf("%s%*c",ban.telephone);
//결과를 출력합니다.
printf("\n 이름\t 주민번호/학번 전화번호\n");
printf("====================================\n");
printf("%6s\t",ban.name);
if(strlen(strno)==8) printf("%13s",ban.no.colleague);
else
for(i=0;i<strlen(ban.no.rrn);i++)
if(i==6) printf("-%c",ban.no.rrn[i]);
else printf("%c",ban.no.rrn[i]);
printf(" ");
for(i=0;i<strlen(ban.telephone);i++)
if(ban.telephone[i]==3 || ban.telephone[i]==7) printf("-%c",ban.telephone[i]);
else printf("%c",ban.telephone[i]);
printf("\n");
return 0;
}
참고풀이 결과]
대한민국의 아름다운 영토, 독도의 겨울
'프로그램 > C언어 1000제' 카테고리의 다른 글
C언어 103제] C언어 콘서트 CHAPTER 11 Programming 3 복소수 더하기 p455 (0) | 2022.01.17 |
---|---|
C언어 102제] C언어 콘서트 CHAPTER 11 Programming 2 구조체 활용하여 이메일 표현하기 p455 (0) | 2022.01.14 |
C언어 100제] C언어 콘서트 CHAPTER 11 p434 도전문제 3 문제를 랜덤하게 제시하고 출제된 문제는 다시 나오지 않도록 하기 p455 (0) | 2022.01.11 |
C언어 99제] C언어 콘서트 CHAPTER 11 p434 도전문제 2 맞춘문제 카운트 하기 (0) | 2022.01.11 |
C언어 98제] C언어 콘서트 CHAPTER 11 p434 도전문제 1 10문제 더 추가하기 (0) | 2022.01.11 |
댓글