Strong Root

난이도 ★


문제를 보시려면 여기를 클릭



 

힌트

 문자열 처리에 주의할 것.




이하는 코드입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <stdio.h>
#include <string>
#include <iostream>
 
#define KG_TO_LB 2.2046
#define LB_TO_KG 0.4536
#define L_TO_G 0.2642
#define G_TO_L 3.7854
 
#pragma warning(disable:4996)
 
using namespace std;
 
int main() {
    int N;
    scanf("%d\n", &N);
 
    for (int i = 1; i <= N; i++) {
        string input;
        getline(cin, input);
 
        int pivot = input.find(' ');
        string left (input, 0, pivot);
        string right(input, pivot + 1, string::npos);
 
        float num = atof(left.c_str());
        float resultNum;
        string resultUnit;
        if (right.compare("kg"== 0) {
            resultNum = num * KG_TO_LB;
            resultUnit = "lb";
        }
        else if (right.compare("lb"== 0) {
            resultNum = num * LB_TO_KG;
            resultUnit = "kg";
        }
        else if (right.compare("l"== 0) {
            resultNum = num * L_TO_G;
            resultUnit = "g";
        }
        else if (right.compare("g"== 0) {
            resultNum = num * G_TO_L;
            resultUnit = "l";
        }
        else {
            resultNum = 0.;
            resultUnit = "";
        }
 
        printf("%d %.4f %s\n", i, resultNum, resultUnit.c_str());
    }
 
    return 0;
}
cs