알고리즘 과정
350
작성한 질문수 14
안녕하세요!
제가 이 문제를 강의를 듣기 전 먼저 코딩을 시도했었는데요, 잘 풀리지 않았습니다.
선생님께서는
a=a*10;
a=a+0.5;
a=(int)a;
a=a/10;
printf("%f\n",a); 의 과정을 진행해주셨는데,
저는 처음부터 a*10 을 할 생각을 전혀 하지 못했습니다. 어떤 이유에서 a*10을 먼저 해야 하는건지, 후에는 왜 a/10을 해야하는지 다시 한번 설명해주시면 감사하겠습니다!
답변 1
0
a=a*10을 한 이유는 실수이 소숫점을 한 자리 뒤로 옮겨 소수 둘 째 자리가 첫째 자리로 오게 하기 위해 하는 것입니다.
그 다음 0.5를 더해서 둘짜자리에서 반올림이 일어나는지 확인하는 것입니다.
a=a/10은 소숫점을 한자리 앞으로 옮겨 원래 위치로 복귀하기 위해서 입니다.
a값을 23.57 로 놓고 직접 과정을 해보세요. 그러면 이해가 갈겁니다.
음료수 자판기 출력이 이상하게 나옵니다
0
153
2
i 값 초기화 질문
0
79
2
recipe for targe 'AA.exe' failed
0
81
1
30과 10의 xor
0
204
1
커리큘럼 문의 드립니다
0
238
1
for문에서 sum 관련 질문
0
186
1
이렇게 풀어도 맞는걸까요?
0
262
2
이렇게 풀어도 맞는 풀이일까요?
0
308
1
20페이지 홀,짝,제로 문제에서 이 코드로 짜도 괜찮을까요?
0
270
1
24. 최솟값 구하기
0
342
1
질문 있습니다.
0
333
1
배열을 전역변수로 설정하는 이유
1
673
1
41. A를 #으로에서 질문 있습니다.
0
295
1
20번 소수 판별하기에서 질문 있습니다.
0
430
1
42번 bus error;;;
0
614
1
정수형 배열에서 배열 크기
0
402
1
38. 자리찾기 커지는 방향으로..
0
312
1
37. 배열의 회전에서 ...
0
287
1
1차원 배열에서
0
282
1
지수연산에서
0
307
1
7.연필 개수 문제
0
384
1
a=(int)a 에서 왜 괄호를 붙이나요 a=int a 는 왜안되나요
0
852
1
섹션 6. 소수
0
325
1
왜 2중for문을 두개 쓴건가요?
0
252
1





