츄잉~ chuing~
츄잉 신고센터 | 패치노트 | 다크모드
공지&이벤트 | 건의공간 | 로고신청N | HELIX
로그인유지
회원가입  |  분실찾기  |  회원가입규칙안내
[C언어] 3.C언어 기초(1.5)
팟독 | L:0/A:0
169/450
LV22 | Exp.37% | 경험치획득안내[필독]
추천 4-0 | 조회 3,306 | 작성일 2014-09-09 21:07:53
[서브캐릭구경OFF] [캐릭컬렉션구경OFF] [N작품구경OFF]
*서브/컬렉션 공개설정은 서브구매관리[클릭]에서 캐릭공개설정에서 결정할수 있습니다.
  [숨덕모드 설정] 숨덕모드는 게시판 최상단에 위치해 있으며 언제든 설정할 수 있습니다.

[C언어] 3.C언어 기초(1.5)

 

이번에는 전 게시글에서 말했던 밑의 2문제를 풀어볼까합니다.

 

1.a라는 변수에 100을 입력하고 출력하기 b라는 변수에 99.9를 입력하고 출력하기 c라는 변수에 문자 A를 넣고 출력하기 d라는 변수에 문자열 chuing을 넣고 출력하기
2.변수를 2개만 사용하여 세 숫자를 입력받아 세 숫자를 더한값을 출력하기
 
1번 풀이.
위와 같이 소스코드를 짜면 될거같죠?
 
 
위와 같은 코드로 실행했을때는 오류가납니다.
위와 같은 오류를 보고 논리적오류라고 합니다.
 
*논리적오류:실행은 됬으나 내가 원한 결과값이 나오지않은 오류
 
여기서 결과값을 보고 추측을 해볼 때 변수C를 입력할차례에 A를 입력했으나 변수C에는 아무것도 들어가있지않고 A가 변수d로 들어간 상황으로 보입니다.
출력값을 자세히보면 c=에 줄바꿈이 2번된것을 볼수있죠. 그러므로 여기 변수C에는 아무런값도 들어가있는것이 아니라 n라는 줄바꿈이 들어가있는겁니다.
 
이 상황은 앞에서 scanf를 사용하였기 때문에 메모리(버퍼)에는 이미 n라는 값이 들어있지만, %c의 특성상 하나의 문자밖에 읽어오지못하니 n만 읽어온 상황이 나온겁니다.
 
그러므로 여기서는 scanf로 %c를 받아오기전 메모리를 지워주는 명령어를 넣어주면 됩니다. 
메모리(버퍼)를 지워주는 명령어는 fflush(stdin)을 사용하시면 됩니다. 그럼 소스코드에 fflush(stdin)을 넣고 사용해보도록 하겠습니다.
 
 
위와 같이 잘 실행된것을 확인할 수 있습니다.
 
2번 풀이.
2번 문제의 중요한 것은 변수2개만을 사용하여 세 숫자를 입력받아 합을 구하라는 겁니다.
 
 
그렇다면 소스코드는 이런식으로 짜면 되겠군요.
만약 이렇게 실행시키면 오류가 납니다.
 
위와 같이요.
대충 순서를 보면 첫번째 scanf를 하고 오류가 난것을 확인 할 수 있습니다.
에러코드를 보면 sum이 잘못됬다고하는데... 영어 잘 모르겠죠? 그럼 비쥬얼 베이직에있는 오류창을 봅시다.
 
 
마지막 줄을 보면 초기화되지 않은 sum 지역 변수를 사용했습니다. 라고 나옵니다.
초기화를 시켜주면 오류가 없다는 말이겠죠.
*초기화란? 변수에 숫자등을 넣는 작업. 대부분 0을 사용함.
 

위의 소스코드를 보면 변수 i와 sum을 선언 한 다음 줄에 sum=0;이라는 sum을 0으로 초기화하는 코드를 입력하였습니다.

 

초기화를 한 소스코드로 실행을 해보면 위의 실행화면과 같이 오류없이 잘 실행이 되는것을 확인 할 수 있습니다.

 

왜 초기화를 해야하는가?

전게시글에 간략하게 설명하고 넘어갔지만 좀 더 자세히 설명하면,

변수를 선언했을 때 초기화를 하지않으면 변수는 쓰레기값이라는 값을 가집니다. 이 쓰레기값은 0이 아니라 컴퓨터에 랜덤하게 들어가있는 값을 가르킵니다.

정수형 변수를 선언하고 초기화하지않고 이 변수를 출력하면 아래의 사진과같이 쓰레기값을 가진다라는 것을 알 수 있습니다.

 

 

1번 문제를 풀어봄으로써 입력에 대해 좀 더 이해 할 수 있고 2번 문제를 풀어봄으로써 변수와 초기화에 대해 이해 할 수 있습니다.

 

개추
|
추천
4
반대 0
신고
    
  [숨덕모드 설정] 숨덕모드는 게시판 최상단에 위치해 있으며 언제든 설정할 수 있습니다.
[L:57/A:422]
Kuroyukihime
잘 보고 있습니다
2014-09-10 02:06:01
추천
귤밭
와 컴퓨터에 대해 아무것도 모르는 초심자라 첫장부터 지금까지 멍때리면서 봤네요 잘은 몰라도 조금이라도 읽으면서 알아두면 나중엔 이해가 갈것 같네요☆ 앞으로도 틈틈히 읽겠습니다☆
2014-09-14 09:06:39
추천
팟독
원래 이쪽분야가 처음할때는 이해도 안가고 멍때리면서 듣고보다가 시험쳐야하면 그냥 외워서치는데 언젠가는 갑자기 이해가되는 분야입니다 ㅋㅋ
2014-09-14 22:05:50
추천
현실
재밌으니 꼭 계속 연재해주시면 감사하겠습니다
2014-09-15 07:51:20
추천
[L:42/A:188]
물트라
잘 읽고 있습니다.
그런데 헤더 파일에 대한 설명도 부탁드려도 될까요? 이해가 안 되네요.
2014-09-16 21:00:17
추천
팟독
일단 사전적인 의미는

헤더 파일(header file) 또는 인클루드 파일(include file)은 컴파일러에 의해 다른 소스 파일에 자동으로 포함된 소스 코드의 파일이다. 일반적으로 헤더 파일들은 다른 소스 파일 속의 첫 부분에 포함된다. 입니다

헤더파일 또는 인클루드 파일이라고 합니다. 왜 인클루드 파일이라고 부르게되었는지는 모르겠으나 include로 선언하기때문에 인클루드 파일이라고 생각하시면 됩니다.
사전적의미는 다른 소스 파일에 포함된 소스 코드의 파일이라고 말하는데, 쉽게 설명하면 소스코드를 모아둔 파일이라고 보시면 됩니다. 더 간단하게 설명하자면 함수를 모아둔 파일입니다.

printf scanf도 함수인데, 이런 함수를 모아둔 파일이라고 생각하시면 됩니다. 그냥 이런 함수를 필요할때마다 불러와서 쓴다고 보시면됩니다.
예를 들어 stdio.h라는 헤더파일은 printf나 scanf등의 함수를 가지고 있는 헤더파일이라고 생각하시면 됩니다.
헤더파일은 stdio.h말고도 stdlib.h이나 time.h 등의 기본적으로 제공하는 매우 많은 헤더파일이 있고 그 헤더파일은 홈페이지에 들어가셔서 검색하면 나옵니다. (그 홈페이지는 저도 잘 기억이안나네요. ms였던거같긴한데...)
stdio.h처럼 C언어에서 기본적으로 제공하는 헤더파일도 있지만 사용자가 헤더파일을 만들어서 사용할수도 있습니다.

왜 헤더파일이 필요하냐고 생각하실수도 있는데 만약 헤더파일이 없다면 printf나 scanf등의 함수를 직접 프로그래밍상에 코딩한다음에 사용하여야합니다. 허나 헤더파일을 사용함으로써 직접 코딩하지않고 #include 라는 이 헤더파일을 사용하겠다라는 선언만해주면 printf나 scanf등의 함수를 사용할 수 있는거죠.
2014-09-17 19:57:45
추천
샹크스¸
잘보고가요.
2015-02-08 22:37:49
추천0
의견(코멘트)을 작성하실 수 없습니다. 이유: 로그인을 하시면 댓글작성이 가능합니다. 츄잉은 가입시 개인정보를 전혀 받지 않습니다.
  
즐겨찾기추가   [게시판운영원칙] | [숨덕모드 설정] |   게시판경험치 : 글 10 | 댓글 1
번호| | 제목 |글쓴이 |등록일 |추천 |조회
106 츄간음악시간  
[음악시간] 15. 특집 같이 송편을 먹고 싶은 캐릭터 [1]
츄인e
2015-09-30 0-0 2073
105 츄간음악시간  
[음악시간] 14. 단풍의 계절, 가을 [1]
츄인e
2015-09-13 0-0 2968
104 츄간음악시간  
[음악시간] 13. 특집 가을에 어울리는 캐릭터 [9]
츄인e
2015-09-02 2-0 4917
103 츄간음악시간  
[음악시간] 12. 대한민국 대표 예능 무한도전 [5]
츄인e
2015-08-25 1-1 5333
102 별처럼빛나는  
[리니지] 세바스챤 서버 별처럼빛나는 전투영상 제 4편&5편 [4]
2015-08-11 0-0 5254
101 츄간음악시간  
[음악시간] 11. 여름의 무더위를 날려줄 락 [1]
古제갈공명
2015-08-03 0-0 3981
100 음덕겜덕피덕  
원피스 OP - Crazy Rainbow & Jungle P [7]
짱폭
2015-07-22 3-0 8611
99 츄간음악시간  
[음악과 사람] 4. SPYAIR [17]
古제갈공명
2015-07-20 4-0 6501
98 츄간음악시간  
[음악시간] 10. 더움과 시원함의 계절, 여름 [2]
古제갈공명
2015-07-20 0-0 5951
97 별처럼빛나는  
[리니지] 세바스챤 서버 별처럼빛나는 전투영상 제 3편 [2]
2015-07-13 1-0 4674
      
1
2
3
4
5
6
7
8
9
10
>
>>
enFree
공지&이벤트 | 접속문제 | 건의사항 | 로고신청 | 이미지신고 | 작품건의 | 캐릭건의 | 기타디비 | 게시판신청 | 클론신고 | 정지/패널티문의 | HELIX
Copyright CHUING Communications. All rights reserved. Mail to chuinghelp@gmail.com | 개인정보취급방침 | 게시물삭제요청