디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

어떡해 일기 #8 :: 조건문 학습중...

어떡해갤로그로 이동합니다. 2009.12.13 22:19:00
조회 610 추천 0 댓글 13



어떡해 일기는 제가 \'쓸만한 프로그래머\'가 되기까지의 하루하루를 기록해 나갈 것입니다.
이것은 제가 그날 하루동안 프로그래머가 되기 위해 노력한 사항과 에피소드를 만천하에 공개하여,
저 스스로 나태해지지 않도록 채찍질 하기 위함과 동시에 선배님들에게 조언을 구하고자 함입니다.
자유분방한 DC에서 올라가는 글인 만큼 그날의 기분에 따라 존칭, 돌연 막말 등 일관성 없는 말투가 있을 수 있습니다.

길다는 의견이 많아 앞으로는 되도록 일기를 짧게 쓰도록 합니다.
더 많은 형들과 이야기를 공유하기 위해서입니다.

+++++++++++++++++++++++
현재 사용중인 교재+++++++++++++++++++++++++++++

주교재 : 윤성우의 \'열혈강의 C프로그래밍\' (FREE LEC)
부교재 :  BRIAN W. KERNIGHAN , DENNIS M.RITCHIE의 C언어 프로그래밍(대영사)
              세계제일 C언어 시작하기 (베스트북)

1주차 :: 기초 함수, 조건문, 반복문, 변수와 상수 기초 이해.  (\'09. 12. 14 부터 시작)

==========================================시작

본래라면 오늘 조건문을 끝낼 생각이었는데 그러하질 못했습니다;

한창 if문과 조건연산자를 공부하고, 예제를 풀고 있는데 쉬워보이는 예제가 있더군요.

)) 두개의 정수를 입력받아서 차를 구하는 프로그램을 구현하되, 입력받은 순서와 상관없이 큰 수에서 작은 수를 한다.(항상 양수값 출력)

if문으로 하면 간단한 문제라는 판단하에 곧장 작성을 하려다가 때마침 바로 전 페이지에 조건 연산자라는 재미있는 것을 배운 터라

예제의 의도가 아닌 다른 방향으로 문제 풀이를 해보기로 했습니다.

if 문과  조건 연산자를 동시에 사용한 코드로 말이죠.

====== 아래는 작성한 코드입니다.

 #include <stdio.h>

 int main(void)
{
    int sum = 1, x, y;

    printf("두개의 정수를 입력해주세요, 큰것에서 작은 것을 뺍니다. 값은 항상 양수입니다. : ");
    scanf("%d %d", &x, &y);

    sum=(x>y)? \'1\':\'2\'; //1은 x가 크다, 2는 y값이 크다.

    if (sum==1)
        printf ("%d 값에서 %d값을 뺍니다. 결과는 %d 입니다.\\n", x,y, x-y);
    else
        printf ("%d 값에서 %d값을 뺍니다. 결과는 %d 입니다.\\n", y,x, y-x);


    return 0;
       
}

아, 근데 자꾸 입력받은 정수값의 크기와 관계없이 y-x의 형태로만 계산을 하는 겁니다.

횽들은 아시겠죠, 왜 작동을 하지 않는지;

네, 조건문에 의해 입력되는 sum의 값이 \'문자\' 1로 입력되고, 차행의 if문의 조건 검색시에는 문자 1과 숫자 1을 비교하게 됩니다.
문자 1의 경우 아스키 코드 값에서 정수값으로 변환 시키니 정수값 49가 나오더군요.
49와 1이 같은 값이 다르니, 코드는 자꾸 else 로만 흐르게 되고 입력값에 관계없이 y-x 형태의 계산만 진행되는 거였습니다.
방법은 간단하게
    if (sum==1)을     if (sum==\'1\')으로 바꿔주면 끝날 문제였죠. 아니면 위의 조건문을 숫자값으로 바꾸던가.

이걸........ 이 간단한 걸.............. 3시간 동안 고민해버렸네요;;;

이 과정에서 이 짧은 코드때문에 담배 4개 피우고;

근데, 정말 마침내 원인 파악이 됐을때는 몸에 전율이 흐르더군요;

ㅎㅎ

그리고 이번기회에 제가 코딩을 할때 잘못하고 있는 것들을 짚어볼 수 있었습니다.
일단 코딩 자체가 익숙하지 않다보니 무심결에 printf를 pritnf로 쓸때가 간혹 있더군요;
또 연산명령을 내리는 \';\'세미콜론의 경우도 때때로 빼먹는 경우도 있고.
숫자를 문자화 시키는 \'1\'따옴표의 경우도 \'1 로 끝난 경우도 있고.

이점은 아직 짧은 코드만 치는 과정에서는 원인파악이 쉽지만 장문의 코드를 작성할때에는 원인파악이 치명적으로 힘들어질 수 있음을 깨달았습니다.
당분간은 조금 속도가 늦더라도 신중히 코딩하는 습관을 길러야겠습니다.

하지만 덕분에 조건문에 대해서 뭔가 감이 온 것 같기도 합니다.

내일 쯤 조건문을 복습하고 비타500횽의 말씀대로 제가 공부한 조건문에 대해서 정리해보려고 합니다.
오늘은 여기까지 하겠습니다.

오늘 일기 끄 ㅌ













추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 우리나라를 대표해서 UN 연설자로 내보내고 싶은 스타는? 운영자 25/09/29 - -
AD 프로게이머가 될테야!! 운영자 25/10/01 - -
공지 프로그래밍 갤러리 이용 안내 [96] 운영자 20.09.28 47641 65
2894072 인생 선배님들 질문을 여쭙습니다 RPA 직렬 케인즈갤로그로 이동합니다. 19:54 2 0
2894071 매국친중 찢재명 드럼통을 부탁해 방송연기해라 압박 ♥덩냥이♥갤로그로 이동합니다. 19:51 10 0
2894070 2찍이 실력 타령하는게 제일 이해 안돼 프갤러(223.63) 19:50 4 0
2894068 취미로 플밍하는새끼들 특징 [1] 프갤러(211.235) 19:38 21 0
2894067 판교어는 중견까지만 잘 쓰는듯. 프갤러(211.177) 19:35 17 0
2894066 갈비 먹습니다. 넥도리아(220.74) 19:21 18 0
2894061 내가 맥주를 안먹는 이유 프갤러(210.217) 19:17 19 1
2894060 점심 간식 저녁 발명도둑잡기(118.216) 19:14 10 0
2894057 인스타 개인정보가 국외이전으로 피싱당해서 [2] 넥도리아(220.74) 19:09 20 0
2894055 이게 내 포트폴리온데 어디까지 취업가능함? [3] 프갤러(210.217) 19:08 41 2
2894053 추석 유흥 50% 할인 리스트?ㅋㅋㅋㅋㅋㅋㅋ ㅇㅇ(118.235) 19:01 10 0
2894051 와 경기 안좋아서 못나갈꺼 아니까 연봉을 [1] ㅇㅇ(211.234) 18:56 12 0
2894048 이거보면 윤석열이 얼마나 말아먹었는지 보이지 [2] 프갤러(210.217) 18:49 32 1
2894044 김종국 신부가 궁금하다 발명도둑잡기(118.216) 18:38 12 0
2894043 개발자는 두가지 분류가 있다. [1] 프갤러(210.217) 18:37 35 0
2894041 Distant Thunder – Andrew Wyeth 발명도둑잡기(118.216) 18:30 8 0
2894039 난 1찍들이 외치는 실력이라는거 안믿는다 ㅇㅇ(121.168) 18:19 19 0
2894037 추석연휴 10일이나 쉬니까 코딩좀 해야지 [1] 박민준갤로그로 이동합니다. 18:09 25 0
2894036 ■요즘 Si수준 신입 대세포폴이 뭐에요? [1] ㅇㅇ갤로그로 이동합니다. 18:09 21 0
2894034 [단독] 초봉 6300만원 신의 직장 날벼락…취준생 망연자실 무슨일이? [1] 발명도둑잡기(118.216) 18:04 30 0
2894033 우드스톡, 인류역사상 최대의 축제[손호철의 미국사 뒤집어보기] 발명도둑잡기(118.216) 18:02 9 0
2894032 게이샤의 비극 소비하며 수동적 일 여성상 강화 발명도둑잡기(118.216) 17:57 9 0
2894031 it업계도 1v1 다이다이까서 결과가 나오면 좋은데 [1] 프갤러(210.217) 17:55 25 1
2894030 [1인,1개] 배달의,민족 30,000원 짜리 쓸 사람 써 ! [1] ㅇㅇ(119.205) 17:55 10 0
2894029 진짜 대한민국에 좆밥새끼들 너무 넘쳐나 ㅋㅋ 프갤러(210.217) 17:52 26 1
2894028 ㅆㅇㅆ는 수재다 [1] 발명도둑잡기(118.216) 17:23 33 0
2894027 나도 바이브코딩으로 크몽 해볼까 [2] 발명도둑잡기(118.216) 17:15 37 0
2894026 gcc rust [1] 발명도둑잡기(118.216) 17:13 20 0
2894023 ㅆㅇㅆ는 뛰어봣자 벼룩임 [1] 프갤러(210.217) 17:09 64 1
2894019 사실 나에게 휴일이란 [1] 발명도둑잡기(118.216) 17:04 20 0
2894018 338688 맞대응) 프듀48 주작과 S엔터 ㅇㅇ(175.223) 17:03 22 0
2894015 차단한 병신 왜 자꾸 헛소리하냐 ㅆㅇㅆ찡갤로그로 이동합니다. 17:00 18 0
2894010 빕스갔다 왔더니 ㅆㅇㅆ새끼 또 개소리하네 ㅋㅋ 프갤러(210.217) 16:53 47 1
2894006 너네 PWA로 설정해두면 휴대폰으로 앱처럼 할 수있단거 알았냐 [2] ㅆㅇㅆ(124.216) 16:44 23 0
2894004 근데 실제 산업에서 AI 쓰는건 에어플로우같은거로 하나? ㅆㅇㅆ(124.216) 16:21 17 0
2894001 프로그래머 실력 고만고만하다. 그렇게 생각하던 시절이 제게도 있었죠 [3] 프갤러(221.146) 16:13 56 0
2894000 이 현상 뭐가 문제인 거냐?? [4] 프갤러(114.204) 16:10 34 0
2893999 님들 저 졸업작품주제 추천좀요 ㅠㅠㅠㅠ [6] 공기역학갤로그로 이동합니다. 16:06 46 0
2893998 우리나라 지금 AI가 생각보다 많이 적용되고있음 [11] 프갤러(125.177) 16:04 52 0
2893997 코딩은 재능보단 뭘 만들고 싶은지가 있어야해. [2] ㅆㅇㅆ(124.216) 15:58 51 1
2893994 업무용 데탑으로서의 Weston [2] 나르시갤로그로 이동합니다. 14:42 31 0
2893993 추석 유흥 50% 할인 리스트?ㅋㅋㅋㅋㅋㅋㅋ ㅇㅇ(39.7) 14:37 16 0
2893992 ㅆㅇㅆ 한심한놈 여자가 뭐가 좋다고 프갤러(210.217) 14:22 46 3
2893989 testicle 패로디 한 NESticle 아이콘 발명도둑잡기(118.216) 14:15 28 0
2893987 나 욕 좀 해줄수 있냐 [9] ㅇㅇ(211.234) 13:49 53 1
2893980 동기부여 한번만 도와줘라 [9] 프갤러(219.254) 12:48 71 0
2893976 끝났다. 이제 러스트가 소프트웨어 업계를 지배한다. [1] 프갤러(110.8) 12:33 62 0
2893975 디시에 글 쓸 때 화교 족보 얼마나 섞여있는지 [2] 프갤러(211.210) 12:28 34 0
2893974 난 오래전부터 대비할려고 헤이세이 잃어버린 30년 정독해왔음 타이밍뒷.통수한방(1.213) 12:27 24 0
뉴스 오혜연, ‘블루드레스 자태’ (황금촬영상 시상식) 디시트렌드 10.03
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2