프로그래밍

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
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180473 [컴퓨터] 올그떠 보인다길래 삭제함 Benetton 0 9 시간 전 103
180472 [잡담] wh xm4 끼고 자다가 오른쪽 박살남ㅠㅠ 5 곰문곰문곰문곰문... 0 9 시간 전 165
180471 [컴퓨터] 컴퓨터 완본체 샀는데 깔아야할 드라이버나 설정 있나요? 6 하이웨이 0 14 시간 전 198
180470 [잡담] 좆데온 8천번대보다 7900xtx가 3 전기모기채는신이야 0 14 시간 전 241
180469 [컴퓨터] 형님들 견적짠거 호환 문제없는지 확인 부탁드립니다 2 우루루옳지 0 14 시간 전 81
180468 [정보] 크러쉬80 - 레이니75를 만든 Wob의 텐키리스 키보드 2 Veigrake 0 15 시간 전 212
180467 [잡담] 여기 로봇 청소기도 물어봐도 됨?? 11 년째재수강 0 16 시간 전 196
180466 [잡담] 윈도우12 전부 레거시쳐낸다는말이 하드웨어를 말한거구나 4 이거보인다면기분탓임 0 16 시간 전 292
180465 [컴퓨터] 갤럭시80 넘나 이쁜것이예요 2 군마 1 19 시간 전 377
180464 [모바일] 차량용 맥세이프 충전기 탁상용으로 쓰니 좋다 4 년째군대 0 19 시간 전 201
180463 [잡담] 채터링 어캐잡습니까... 5 로우팡맨 0 20 시간 전 190
180462 [잡담] 4월에 마우스 큰 게 두 개 나오네 14 GNStout 0 20 시간 전 277
180461 [컴퓨터] 무선 키보드 마우스 세트는 별로인가? 3 하이웨이 0 20 시간 전 134
180460 [컴퓨터] 10만원대 포터블 모니터는 사는거 아니더라 16 코싸멘뚜 0 20 시간 전 247
180459 [정보] 레이니75 저격하는 브릿지75 19 Veigrake 0 22 시간 전 326
180458 [잡담] 드디어 왔다 레이니 5 ltearl 0 1 일 전 308
180457 [프로그래밍] 그 혹시 게임쪽 종사자 있음? 16 god79ii 0 1 일 전 462
180456 [컴퓨터] sata 케이블때문에 ssd가 망가질 수도 있나요? 9 드웨인토마스 1 1 일 전 337
180455 [모바일] 횽들 어거좀 봐줘 6 부자가될개붕이놈들 0 1 일 전 204
180454 [컴퓨터] 선생님들 혜안을 구합니다 9 빠른인정빌런 0 1 일 전 194