-
2021-03-2713:20:44 #3585254C 47.***.51.86 906
C 프로그래밍 고수님들,
감히 질문 하나만 올리겠습니다. 아래 문제에 대한 그 밑에 코드를 입력을 했을 때 출력값은 똑같이 나오는데, 계속 틀렸다고 나옵니다. 어떤 것이 문제인지도 파악못하고 있는 중입니다.. 상세히 설명과 코드 좀 수정해주시면 정말 정말 감사하겠습니다..은혜 잊지 않겠습니다 ㅠ
문제 : Write a program that converts integer Fahrenheit temperatures from 0 to 212 degrees to floating-point Celsius temperatures with 3 digits of precision. Perform the calculation using the formula celsius = 5.0 / 9.0 * (fahrenheit – 32). The output should be printed in two right-justified columns of 10 characters each, and the Celsius temperatures should be preceded by a sign for both positive and negative values.
입력한 코드:
#include <stdio.h>
int main() {
int f;
for (f = 0; f <= 212; f++)
{
printf(“%10d%+10.3f\n”, f, ((float)f – 32.0) * 5.0 / 9.0);
}return 0;
}
-
-
3 digits of precision 을 처리를 안했네요 0.0005 더하고 floor 함수 쓰면 될 듯
-
그걸 잘 모르겠습니다..수정좀 부탁드려도 될까요?
-
-
이것도 못하면 그냥 접는게 인생에 도움이 될거에요.
-
“출력값은 똑같이 나오는데, 계속 틀렸다고 나옵니다”
이게 무슨 말인가요? 똑같이? 뭐랑 똑같이? 결과가 맞다는 얘긴가요 틀리다는 얘긴가요?
위에 round하라는 조언은 이해를 하나요?
0도는 -17.777777…인데, 소수점 세자리를 찍을 때 반올림 하라는거. 그런데 이미 그렇게 나오지 않나요?계속 틀렸다고 하는데, 그냥 “wrong, incorrect” 달랑 이 얘긴가요? 아니면 결과가 틀렸다거나 코드에 문제 있다거나 등등 다른 얘기가 있나요?
혹시 자기가 이해하여 쓴 코드가 아니라, 어디서 복사해서 넣은 건데, 똑같이 복사했는데도 왜 안돌아가는지 몰라서 그러나요?
위에 입력한 코드 보기에는 돌아갈 것 같지만, 그대로 복사해서 넣어 컴파일하면 에러나옵니다. 그 이유를 모른다면….
정말로 자기가 직접 해본건 없다는 증거임.이건 고수에게 물어야 답을 알 수 있는게 아닙니다. 초급 과정이라도 차근차근 해나간다면 알 수 있는겁니다. 뭔가를 건너뛰고 시작을 잘못한게 아닌지요?
-
#include <stdio.h>
int main()
{
float celsius;
int fahrenheit;for (fahrenheit=0; fahrenheit<213; fahrenheit++)
{
/* Fahrenheit to celsius conversion formula */
celsius = 5.0/9.0 * ((float)fahrenheit – 32);/* Print the value of celsius */
printf(“%10d%+10.3f\n”, fahrenheit, celsius);
}return 0;
}output:
0 -17.778
1 -17.222
2 -16.667
3 -16.111
4 -15.556
5 -15.000
6 -14.444
7 -13.889
8 -13.333
9 -12.778
10 -12.222
11 -11.667
12 -11.111
13 -10.556
14 -10.000
15 -9.444
16 -8.889
17 -8.333
18 -7.778
19 -7.222
20 -6.667
21 -6.111
22 -5.556
23 -5.000
24 -4.444
25 -3.889
26 -3.333
27 -2.778
28 -2.222
29 -1.667
30 -1.111
31 -0.556
32 +0.000
33 +0.556
34 +1.111
35 +1.667
36 +2.222
37 +2.778
38 +3.333
39 +3.889
40 +4.444
41 +5.000
42 +5.556
43 +6.111
44 +6.667
45 +7.222
46 +7.778
47 +8.333
48 +8.889
49 +9.444
50 +10.000
51 +10.556
52 +11.111
53 +11.667
54 +12.222
55 +12.778
56 +13.333
57 +13.889
58 +14.444
59 +15.000
60 +15.556
61 +16.111
62 +16.667
63 +17.222
64 +17.778
65 +18.333
66 +18.889
67 +19.444
68 +20.000
69 +20.556
70 +21.111
71 +21.667
72 +22.222
73 +22.778
74 +23.333
75 +23.889
76 +24.444
77 +25.000
78 +25.556
79 +26.111
80 +26.667
81 +27.222
82 +27.778
83 +28.333
84 +28.889
85 +29.444
86 +30.000
87 +30.556
88 +31.111
89 +31.667
90 +32.222
91 +32.778
92 +33.333
93 +33.889
94 +34.444
95 +35.000
96 +35.556
97 +36.111
98 +36.667
99 +37.222
100 +37.778
101 +38.333
102 +38.889
103 +39.444
104 +40.000
105 +40.556
106 +41.111
107 +41.667
108 +42.222
109 +42.778
110 +43.333
111 +43.889
112 +44.444
113 +45.000
114 +45.556
115 +46.111
116 +46.667
117 +47.222
118 +47.778
119 +48.333
120 +48.889
121 +49.444
122 +50.000
123 +50.556
124 +51.111
125 +51.667
126 +52.222
127 +52.778
128 +53.333
129 +53.889
130 +54.444
131 +55.000
132 +55.556
133 +56.111
134 +56.667
135 +57.222
136 +57.778
137 +58.333
138 +58.889
139 +59.444
140 +60.000
141 +60.556
142 +61.111
143 +61.667
144 +62.222
145 +62.778
146 +63.333
147 +63.889
148 +64.444
149 +65.000
150 +65.556
151 +66.111
152 +66.667
153 +67.222
154 +67.778
155 +68.333
156 +68.889
157 +69.444
158 +70.000
159 +70.556
160 +71.111
161 +71.667
162 +72.222
163 +72.778
164 +73.333
165 +73.889
166 +74.444
167 +75.000
168 +75.556
169 +76.111
170 +76.667
171 +77.222
172 +77.778
173 +78.333
174 +78.889
175 +79.444
176 +80.000
177 +80.556
178 +81.111
179 +81.667
180 +82.222
181 +82.778
182 +83.333
183 +83.889
184 +84.444
185 +85.000
186 +85.556
187 +86.111
188 +86.667
189 +87.222
190 +87.778
191 +88.333
192 +88.889
193 +89.444
194 +90.000
195 +90.556
196 +91.111
197 +91.667
198 +92.222
199 +92.778
200 +93.333
201 +93.889
202 +94.444
203 +95.000
204 +95.556
205 +96.111
206 +96.667
207 +97.222
208 +97.778
209 +98.333
210 +98.889
211 +99.444
212 +100.000
-