프로그래밍

C언어 기초적인부분에서 모르는부분 6개만 질문...

 

안녕하세요...

 

C언어를 배우고있는데 문제풀면서 이해가 안되는게 몇가지있네요...

 

 

1.  예를들어 이러한 문장이 있다고 칩시다

double n1 = 83.768;

printf("dog = %5.2f\n", n1);

그러면 n1이라는 변수를 5개의 공간을 만들고 소수점 둘쨰짜리까지 표현한다 이뜻이잖아요???

n1이라는 숫자가 83.768 이라고 쳤을때

 

5.2f 면     8 3 . 7 7 이렇게 출력되고

7.4f 면     8 3 . 7 6 8 0    이렇게 출력되는게 아닌가요??

 

근데 책에는 5.1f = 공백 공백 공백 8 4 이렇게 출력된다고 나오네요 ( 공백 공백  8 3 . 7 ) 이 아니라... 왜그럴까요.. 

 

==============================================

 

2.

 

KakaoTalk_20190525_112903823.jpg

 

여기서 나오는 저 2는뭐죠 ㅋㅋㅋㅋ? 이해가안되요... 갑자기 2가 뜬금없이 나오네요

 

============================================

 

3.  

 

int a= 100, b= 10 , c;

c = ( a+=20 ) || ( b += 10) ;

이런 식에서 풀어보면 

 

c = ( a = 100 + 20 ) || ( b = 10 + 10 )

인데 왜 c가 1이죠? 

a랑 b 둘다 거짓이 아닐때 = 1 둘다 거짓이면 = 0 인데..

a = 120이고 b = 20인데 

120 || 20  이게 왜 1인지 모르겠어요..

 

4.

a++ 이거는  ( ; ) 이 부호 다음으로가면 변경된다고 이해해도되나요??

음 그니까

int a=10;

a++, printf("a=%d,a);

이럴땐 a = 10

a++ ; printf("a=%d,a);

이럴땐 a = 11

맞나요???

 

5.

[크기변환]KakaoTalk_20190525_112841301.jpg

 

 

풀어보자면

 

--x;   // x가 0되고 다음으로 넘어감

y= ++x + 1 ;  // y에 x가 1증가한값 ( 1 ) + 1을 넣음 식이 끝났을때 x=1 y=2

z = y ++ + ++x // z에 y ( 2 ) 와 x ( 2 ) 를 넣음 그리고 y를 1증가시킴 식기 끝났을때 z=4 y=3 x=2

그래서 답은 x =2 y = 3 z= 4 아닌가요?.... 

 

 

=============================

 

 

6.

[크기변환]KakaoTalk_20190525_112836522.jpg

 

저런식이면 x < 10 이면서 x > 20 인 이런뜻아닌가요?

답은 1번인데 &&써야하는거 아닌가요..

 

왜 x < 10 또는 x > 20 이 되는거죠??..

 

해결함 ㅋ

=========================================

 

이상입니다..

 

아시는거 한두개라도 

 

부탁좀 드리겠습니다 ㅠㅠ

 

멍청한건 이해합니다 욕하셔도됩니다

 

 

19개의 댓글

2019.05.25

폰이라서 마지막꺼만 답해드림

&& 쓰면 1부터 안되잖아 ㅋㅋ

0
2019.05.25
@nopsled

아아아아아

 

저게 범위가 그러네... 겹치는게 없네요 ㅋㅋㅋ 잘못생각했네요 감사합니다!!

 

0
2019.05.25
[삭제 되었습니다]
2019.05.25
@MylenE

감사합니다 1번은 책이잘못된거같네요 ㅋㅋㅋ

 

0
2019.05.25

% n.m f 일때

 

n은 정수부분 자리수 m은 소수부분 자릿수

5.1f 는

 

00012.3

 

 

2번은 무슨 2를 말하는지 모르겠다

 

 

3은 둘다 0이 아니여서 1됨

 

4는 이번 문장이 끝날때 +1

 

5는 printf 문 안에 있는 전위연산자도 생각을 해야하니까 다시 한번 생각해봐

 

6은 10보다 작거나 20보다 클때 출력이니까

10보다 작으면서 20보다 클때 출력이면 &&

0
2019.05.25
@8AiTNaVl

3번은 정확히 말하면

 

c = (a += 20) || (b += 10);

 

일때

 

(a += 20) 부분을 0이랑 cmp 해서 바로 1 튀어나옴

0
2019.05.25
@8AiTNaVl

앵? 책에 5.1f가 소수점이 안나온다고?

0
2019.05.25
@8AiTNaVl

엌ㅋ 5번 프린트문을 안봤네요... 감사합니다

0
2019.05.25

4번은

printf("%d",a++); 했을때 10나오고

printf("%d,++a); 했을때 11나오는게 아니냐?

0
2019.05.25
@년째군생활중

3번은 비교연산자가 아니라 대입연산자를 넣었으니까 1나오는 거겠지?

0
2019.05.25
@년째군생활중

2번에 2는 출력이 아니라 입력한거같은데

scanf 값을 입력해줄때 공백이 들어가있으면

다음으로 넘어가지 않고 다른 값을 다시 입력해야

넘어간다는 뜻인거 같은데 그 다시 입력한 값의 예로 2를 써놓은듯

0
2019.05.25
@년째군생활중

아아아아 이해했어요 ㅋㅋㅋ

그런뜻이구나 뭔가했네 ㅋㅋㅋㅋㅋ

0
2019.05.25

1. 소수점 나와야하는데 책이 ㅄ인듯, 그리고 소수점 .도 세야함 5.1f면 (공백 8 3 . 8) 임

2. 2도 사용자가 입력한거임

3. true || true라서 1준거임

4. a++, printf("a=%d,a); 쓰는 사람 없는데 이것도 아마 11나올거임 근데 쓰면 위에 댓글 쓴사람 말처럼 뒷통수 맞음

5. 마지막 printf에도 ++있음

0
2019.05.25
@Hearthstone

아 맞다 자꾸 까먹네요 .도 포함!!

그리구 3번은 왜 트루가나오는거에요

a=120 이게 왜 참인거죠??

0
2019.05.25
@파히비

그냥 단순이 a는 120이니까 120=120이여서 참 이런뜻인가...?

0
2019.05.25
@파히비

논리연산자에서는 그냥 0이 아니면 무조건 참이야

0
2019.05.25
@년째군생활중

아 오키 떙큐

0
2019.05.25
@파히비

너가 c = ( a = 100 + 20 ) 또는 c = ( b = 10 + 10 ) 이렇게 썼다면 각각 120 , 20 이렇게 나왔겠지만

그걸 논리연산자로 묶어버리면 둘중 하나라도 0이 아니니까 1이 나올 수 밖에 없지

0
2019.05.25
@년째군생활중

나는 논리에서0 과 1이 단지그냥 참과 거짓이라는 문자로 이해했어서 헷갈린듯

숫자로도 봐야하구나

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180607 [컴퓨터] 윈10 인터넷 순간 끊김 문제 해결법 좀 5 해물잠봉 0 2 시간 전 65
180606 [컴퓨터] 요새 그래픽카드 어디꺼가 좋음? 2 trader2 0 2 시간 전 115
180605 [잡담] 님들 보통 마우스 얼마나 오래 씀 ?? 12 말릭스 0 3 시간 전 109
180604 [컴퓨터] 윈도우10 노트북 화면 밝기가 자꾸 변하는데 해결 방법 좀 알... 3 두번하세요 0 4 시간 전 45
180603 [프로그래밍] 공통코드테이블은 대체 왜 만드냐 8 잠적자 0 6 시간 전 225
180602 [잡담] PC방에선 무선이어폰 못쓰나? 2 급병신미 0 6 시간 전 149
180601 [컴퓨터] 모니터 이거 괜찮나여? 4 햄보칼쑤가없엉! 0 7 시간 전 142
180600 [프로그래밍] 토이프로젝트 주제 선정 2 개드립눈팅1세대 0 7 시간 전 124
180599 [모바일] 운동할때 쓸 무선이어폰 구합니다 6 물타다대주주 0 8 시간 전 102
180598 [컴퓨터] 다크플래시 df5000에 3rsys팬 껴도 되나요? 3 함박눈 0 8 시간 전 57
180597 [잡담] 아니 유선 무선 음질 차이 이정도였던거임? 1 와신상담 1 8 시간 전 102
180596 [컴퓨터] 윈도우 부팅 납치 해석 3 닉으로드립치고싶냐 0 10 시간 전 167
180595 [컴퓨터] 노트북 키보드 수리 맡기고 왔더니 팬이 엄청 돈당 4 신요조 0 10 시간 전 99
180594 [모바일] iptime wan 포트 연결안됨 해법 있을까요.. 1 비밀변호486 0 11 시간 전 44
180593 [컴퓨터] B650보드 추천좀 해주십시오 5 커뮤니티 0 11 시간 전 81
180592 [모바일] 아니 s21이 169g이고 s24u가 233g인데 말이되나 9 마법부오러사무국장 0 19 시간 전 308
180591 [잡담] 드디어 cpu 배송시작한다 9 차원에서사는인간 0 22 시간 전 334
180590 [컴퓨터] 다빈치 리졸브 쓰는분있나여 4 afterschool 0 1 일 전 184
180589 [모바일] 아이패드 저장공간 질문 6 가나가다라 0 1 일 전 190
180588 [컴퓨터] 150~200 4K 게이밍 견적 부탁 드려봅니다 11 라면死리 0 1 일 전 187