首页 > ACM题库 > HDU-杭电 > hdu 1985 Conversions[解题报告]C++
2013
12-26

hdu 1985 Conversions[解题报告]C++

Conversions

问题描述 :

Conversion between the metric and English measurement systems is relatively simple. Often, it involves either multiplying or dividing by a constant. You must write a program that converts between the following units:

输入:

The first line of input contains a single integer N, (1 ≤ N ≤ 1000) which is the number of datasets that follow.
Each dataset consists of a single line of input containing a floating point (double precision) number, a space and the unit specification for the measurement to be converted. The unit specification is one of kg, lb, l, or g referring to kilograms, pounds, liters and gallons respectively.

输出:

The first line of input contains a single integer N, (1 ≤ N ≤ 1000) which is the number of datasets that follow.
Each dataset consists of a single line of input containing a floating point (double precision) number, a space and the unit specification for the measurement to be converted. The unit specification is one of kg, lb, l, or g referring to kilograms, pounds, liters and gallons respectively.

样例输入:

5
1 kg
2 l
7 lb
3.5 g
0 l

样例输出:

1 2.2046 lb
2 0.5284 g
3 3.1752 kg
4 13.2489 l
5 0.0000 g

#include <stdio.h>
#include <string.h>

int main()
{
    int t;
    double n,m;
    char str[20];
    scanf("%d",&t);
    for(int i = 1;i<=t;i++)
    {
        scanf("%lf %s",&n,str);
        if(!strcmp(str,"kg"))
        {
            m = n*2.2046;
            printf("%d %.4lf lb\n",i,m);
        }
        else if(!strcmp(str,"g"))
        {
           m = n*3.7854;
           printf("%d %.4lf l\n",i,m);
        }
        else if(!strcmp(str,"lb"))
        {
            m = n*0.4536;
            printf("%d %.4lf kg\n",i,m);
        }
        else if(!strcmp(str,"l"))
        {
            m = n*0.2642;
            printf("%d %.4lf g\n",i,m);
        }
    }

    return 0;
}

解题转自:http://blog.csdn.net/libin56842/article/details/8812782