C 코드 질문드립니다

  • #3585254
    C 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;

    }

    • ㅇㅇㅇ 24.***.53.185

      3 digits of precision 을 처리를 안했네요 0.0005 더하고 floor 함수 쓰면 될 듯

      • C 47.***.51.86

        그걸 잘 모르겠습니다..수정좀 부탁드려도 될까요?

    • . 142.***.109.228

      이것도 못하면 그냥 접는게 인생에 도움이 될거에요.

    • 씨앗 67.***.112.190

      “출력값은 똑같이 나오는데, 계속 틀렸다고 나옵니다”

      이게 무슨 말인가요? 똑같이? 뭐랑 똑같이? 결과가 맞다는 얘긴가요 틀리다는 얘긴가요?
      위에 round하라는 조언은 이해를 하나요?
      0도는 -17.777777…인데, 소수점 세자리를 찍을 때 반올림 하라는거. 그런데 이미 그렇게 나오지 않나요?

      계속 틀렸다고 하는데, 그냥 “wrong, incorrect” 달랑 이 얘긴가요? 아니면 결과가 틀렸다거나 코드에 문제 있다거나 등등 다른 얘기가 있나요?

      혹시 자기가 이해하여 쓴 코드가 아니라, 어디서 복사해서 넣은 건데, 똑같이 복사했는데도 왜 안돌아가는지 몰라서 그러나요?
      위에 입력한 코드 보기에는 돌아갈 것 같지만, 그대로 복사해서 넣어 컴파일하면 에러나옵니다. 그 이유를 모른다면….
      정말로 자기가 직접 해본건 없다는 증거임.

      이건 고수에게 물어야 답을 알 수 있는게 아닙니다. 초급 과정이라도 차근차근 해나간다면 알 수 있는겁니다. 뭔가를 건너뛰고 시작을 잘못한게 아닌지요?

    • 배워서남준다 45.***.136.55

      #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