PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2008/03/16 14:22:52
Name 개미
Subject 씨언어 문제 질문드립니다.
간단한거 같으면서도.. 하도 오랜만에 하는거라 그런지

출력이 정상적으로 안되네요..;;

씨언어 잘 하시는분 꼭좀 바주시고 고쳐주세요^^

일단 문제는 년도를 입력 받고 그 년도에 해당하는 10간과 12지를 출력 하는겁니다.

( 예를 들어 1884 를 입력하면 갑신 년 )

그래서 고민하다가 제가 생각해본 소스가


#include<stdio.h>

int main()
{
int num1;

int num2;



int num3;

char num4;

char num5;


printf("년도를 입력하세요 : ");
scanf("%d",&num1);

num2=num1%10;






if(num2==4)
num4='갑';
if(num2==5)
num4='을';
if(num2==6)
num4='병';
if(num2==7)
num4='정';
if(num2==8)
num4='무';
if(num2==9)
num4='기';
if(num2==0)
num4='경';
if(num2==1)
num4='신';
if(num2==2)
num4='임';
if(num2==3)
num4='계';



num3=num1%12;
if(num3==0)

num5='신';
if(num3==1)
num5='유';
if(num3==2)
num5=' 술 ';
if(num3==3)
num5=' 해 ';

if(num3==4)
num5=' 자 ';

if(num3==5)
num5=' 축 ';

if(num3==6)
num5=' 인 ';

if(num3==7)
num5=' 묘 ';

if(num3==8)
num5=' 진 ';

if(num3==9)
num5=' 사 ';

if(num3==10)
num5=' 오 ';

if(num3==11)
num5=' 미 ';

printf("결과 : %d 년도는 %c %c년입니다.", num1, num4, num5);

return 0;
}


이거입니다.

에러는 없는데 문제가 입력을 하면 출력이 한자같은 쓰레기값이 출력이 됩니다.

제 생각으론 char형으로는 한글을 받을 수 없어서 생기는 문제 같은데요.

배열을 사용해야하는지.. 문자열을 사용해아하는지..

아무리 생각해도 모르겠네요.

꼭 답변좀 부탁드립니다~

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
개념less
08/03/16 14:30
수정 아이콘
한글은 두 바이트를 먹기 때문에 char 를 사용하면 안되고 char * 이나 char a[] 를 사용하셔야 합니다.
와후-만세
08/03/16 14:52
수정 아이콘
윗 분의 답변이 이 질문에 대한 직접적인 답이구요, 한 가지 알려드리자면
이런 경우에는
char 배열을 하나 잡고 "갑을병정..." 을 저장한 문자열 하나랑,
"신유술해..."를 저장한 문자열 하나만 가지고 구현하는게 훨씬 좋습니다.
조건문이 필요가 없지요.
08/03/16 14:58
수정 아이콘
답변 감사합니다 ^^ 근데도 에러가 생기네요;; 자세한 소스좀 부탁드립니다-_-;;
와후-만세
08/03/16 15:01
수정 아이콘
#include <stdio.h>
int main()

int year;
char A[21]="갑을병정무기경신임계";
char B[25]="신유술해자축인묘진사오미";
scanf("%d",&year);
printf("%c%c%c%c",A[((year+6)%10)*2],A[((year+6)%10)*2+1],B[((year)%12)*2],B[((year+6)%12)*2+1]);
return 0;

일것 같네요. 컴파일은 안해봐서 잘..;
08/03/16 15:18
수정 아이콘
와후-만세님 감사합니다^^
이렇게 간단한 방법이 있었네요;; 그런데 10간은 제대로 출력되는데 뒤에 12간지가 제대로 출력이안돼네요;
와후-만세
08/03/16 15:21
수정 아이콘
앗,, 오타 죄송합니다.
B[((year+6)%12)*2+1]);
가 아니라
B[((year)%12)*2+1]);
입니다.
08/03/16 15:27
수정 아이콘
수고해주신 와후-만세님께 감사합니다!;
정말 간단하고 명료하네요; 근데 소스를 이해 하기에는 조금 시간이 걸릴거같네요 ;;
혹시라도 이해하다가 어려우면 쪽지드릴께요^^ 감사합니다 와후-만세님^^
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
34908 타자연습.. 어떻게해야하나요? [17] WAN'T YOU2753 08/03/16 2753
34907 흠....수학관련 질문인데...이게 계산으로 나올수 있나요? [4] Carpediem2445 08/03/16 2445
34906 씨언어 문제 질문드립니다. [7] 개미1740 08/03/16 1740
34905 베틀넷 서버 위치.. [5] Rosencrantz2158 08/03/16 2158
34904 07년시즌 선수들의 전적을 알고싶어요 [1] 지니-_-V1575 08/03/16 1575
34903 피파 온라인2에 대해서 .. [1] TongKi1658 08/03/16 1658
34902 수학 문제 질문입니다 [6] Zwei1519 08/03/16 1519
34901 최근까지 토스가 대세였던이유? [14] 김종설1835 08/03/16 1835
34898 소녀시대 앨범 구입에 대해 [4] 헤르메스1948 08/03/16 1948
34897 한자 공부하는데 노하우 같은 것 없을까요? [2] 2093 08/03/16 2093
34896 군대 신체검사 질문... [5] goodluckyo~!2165 08/03/16 2165
34895 이런경우는 뭔가요? (이성문제) [9] Canivalentine2265 08/03/16 2265
34894 편의점 택배에 관하여 샷v2067 08/03/16 2067
34893 오늘 1경기, 서플로 시야확보는 안되지 않았나요? [3] 하수태란2148 08/03/15 2148
34892 종합핵막는거없나요?? [3] 스텝좀밟앗니1915 08/03/15 1915
34891 제가 머리를 다쳐서 꼬맸는데요... [7] *블랙홀*5471 08/03/15 5471
34890 오늘 스타리그결승 어디서 볼수있을까요? [1] hisedu-oov1513 08/03/15 1513
34889 정부보증학자금대출에 관한 질문입니다. [2] Helllo1967 08/03/15 1967
34888 군대가기전 마지막 선물이요.. 박때근1696 08/03/15 1696
34887 술에 관한 질문입니다. [2] GoThree1939 08/03/15 1939
34885 [수학]황금비를 이용한 정오각형 작도 [6] ElleNoeR7074 08/03/15 7074
34884 징병검사 일정이요... [5] 버관위_스타워1517 08/03/15 1517
34883 라코스테, 폴로 피케 질문이요. [2] kim3502138 08/03/15 2138
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로