/* Program: unitcon3.c */
/* Converts user input from one set of units of
a particular quantity to another. */
/* User types in input as follows: "3wgl".
*/
/* Francis O'Donovan 28-11-97*/
/* To be completed */
#include <stdio.h>
#define SEC_MIN (0.0166666)
#define MIN_HOU (0.0166666)
#define HOU_DAY (0.0416666)
#define DAY_MON (0.032258) /* Typical case
*/
#define MON_YEA (0.833333)
#define DAY_YEA (0.0027397)
#define MIN_SEC (60)
#define HOU_MIN (60)
#define DAY_HOU (24)
#define MON_DAY (31)
#define YEA_DAY (365)
#define YEA_MON (12)
#define LBS_LBS (1)
#define LBS_GRAMS (453.5147)
#define LBS_KILOGRAMS (0.4535)
#define GRAMS_LBS (0.0022)
#define GRAMS_GRAMS (1)
#define GRAMS_KILOGRAMS (0.001)
#define KILOGRAMS_LBS (2.205)
#define KILOGRAMS_GRAMS (1000)
#define KILOGRAMS_KILOGRAMS (1)
main()
{
/*
Define variables */
float value;
char quantity, unit, convert;
/* Intro */
printf( "Program: unitcon3.c\n\n" );
printf( "Converts user input from one set of units of a particular
quantity to another.\n" );
printf( "User types input as follows \"3wgl\".\n\n"
);
printf( "Francis O'Donovan 28-11-97\n\n\n" );
/*
Ask user for the quantity, unit, convert */
printf( "Please type in the value of the quantity, followed
by the quantity, followed by the unit the quantity is in, followed
by the unit you want to convert it to.\n" );
printf( "(No spaces!)\n\n" );
printf( "For lengths, type l, for time, type t, for weight,
type w.\n" );
printf( "Lengths: For metres, type m, for kilometers, type
k, for centimeters, type c,\n for miles, type l, for inches, type
i, for feet, type f, for yards, type y.\n" );
printf( "Times: For seconds, type s, for minutes, type m,
for hours, type h, for days,\n type d, for months, type o, for
years, type y.\n" );
printf( "Weights: For lbs, type l, for grams, type g, for
kilograms, type k.\n" );
printf( "(e.g. 3wgl)\n" );
scanf( "%f %c %c %c", &value, &quantity, &unit,
&convert );
/* Convert quantity and print result */
if ( quantity == 'l' )
{
if( unit == 'm' && convert == 'm' )
printf( "%.4f metres is %.4f metres.\n\n", value, value*1
);
else if ( unit == 'm' && convert == 'k' )
printf( "%.4f metres is %.4f kilometres.\n\n", value,
value*(0.001) );
else if ( unit == 'm' && convert == 'c' )
printf( "%.4f metres is %.4f centimetres.\n\n", value,
value*(100) );
else if ( unit == 'm' && convert == 'l' )
printf( "%.4f metres is %.4f miles.\n\n", value, value*(0.0006214)
);
else if ( unit == 'm' && convert == 'i' )
printf( "%.4f metres is %.4f inches.\n\n", value, value*(39.37)
);
else if ( unit == 'm' && convert == 'f' )
printf( "%.4f metres is %.4f feet.\n\n", value, value*(3.282)
);
else if ( unit == 'm' && convert == 'y' )
printf( "%.4f metres is %.4f yards.\n\n", value, value*(1.094)
);
else if( unit == 'k' && convert == 'm' )
printf( "%.4f kilometres is %.4f metres.\n\n", value,
value*1000 );
else if ( unit == 'k' && convert == 'k' )
printf( "%.4f kilometres is %.4f kilometres.\n\n", value,
value*(1) );
else if ( unit == 'k' && convert == 'c' )
printf( "%.4f kilometres is %.4f centimetres.\n\n",
value, value*(100000) );
else if ( unit == 'k' && convert == 'l' )
printf( "%.4f kilometres is %.4f miles.\n\n", value,
value*(0.6214) );
else if ( unit == 'k' && convert == 'i' )
printf( "%.4f kilometres is %.4f inches.\n\n", value,
value*(39370) );
else if ( unit == 'k' && convert == 'f' )
printf( "%.4f kilometres is %.4f feet.\n\n", value,
value*(3282) );
else if ( unit == 'k' && convert == 'y' )
printf( "%.4f kilometres is %.4f yards.\n\n", value,
value*(1094) );
else if( unit == 'c' && convert == 'm' )
printf( "%.4f centimetres is %.4f metres.\n\n", value,
value*(0.01) );
else if ( unit == 'c' && convert == 'k' )
printf( "%.4f centimetres is %.4f kilometres.\n\n",
value, value*(0.00001) );
else if ( unit == 'c' && convert == 'c' )
printf( "%.4f centimetres is %.4f centimetres.\n\n",
value, value*(1) );
else if ( unit == 'c' && convert == 'l' )
printf( "%.4f centimetres is %.4f miles.\n\n", value,
value*(0.000006214) );
else if ( unit == 'c' && convert == 'i' )
printf( "%.4f centimetres is %.4f inches.\n\n", value,
value*(0.3937) );
else if ( unit == 'c' && convert == 'f' )
printf( "%.4f centimetres is %.4f feet.\n\n", value,
value*(0.03282) );
else if ( unit == 'c' && convert == 'y' )
printf( "%.4f centimetres is %.4f yards.\n\n", value,
value*(0.01094) );
else if ( unit == 'l' && convert == 'm' )
printf( "%.4f miles is %.4f metres.\n\n", value, value*(1609)
);
else if ( unit == 'l' && convert == 'k' )
printf( "%.4f miles is %.4f kilometres.\n\n", value,
value*(1.609) );
else if ( unit == 'l' && convert == 'c' )
printf( "%.4f miles is %.4f centimetres.\n\n", value,
value*(160900) );
else if ( unit == 'l' && convert == 'l' )
printf( "%.4f miles is %.4f miles.\n\n", value, value*(1)
);
else if ( unit == 'l' && convert == 'i' )
printf( "%.4f miles is %.4f inches.\n\n", value, value*(63346)
);
else if ( unit == 'l' && convert == 'f' )
printf( "%.4f miles is %.4f feet.\n\n", value, value*(5280)
);
else if ( unit == 'l' && convert == 'y' )
printf( "%.4f miles is %.4f yards.\n\n", value, value*(1760)
);
else if ( unit == 'i' && convert == 'm' )
printf( "%.4f inches is %.4f metres.\n\n", value, value*(0.0254)
);
else if ( unit == 'i' && convert == 'k' )
printf( "%.4f inches is %.4f kilometres.\n\n", value,
value*(0.0000254) );
else if ( unit == 'i' && convert == 'c' )
printf( "%.4f inches is %.4f centimetres.\n\n", value,
value*(2.54) );
else if ( unit == 'i' && convert == 'l' )
printf( "%.4f inches is %.4f miles.\n\n", value, value*(0.0000157)
);
else if ( unit == 'i' && convert == 'i' )
printf( "%.4f inches is %.4f inches.\n\n", value, value*(1)
);
else if ( unit == 'i' && convert == 'f' )
printf( "%.4f inches is %.4f feet.\n\n", value, value*(0.0833333)
);
else if ( unit == 'i' && convert == 'y' )
printf( "%.4f inches is %.4f yards.\n\n", value, value*(0.2777777)
);
else if ( unit == 'f' && convert == 'm' )
printf( "%.4f feet is %.4f metres.\n\n", value, value*(0.348)
);
else if ( unit == 'f' && convert == 'k' )
printf( "%.4f feet is %.4f kilometres.\n\n", value,
value*(0.000348) );
else if ( unit == 'f' && convert == 'c' )
printf( "%.4f feet is %.4f centimetres.\n\n", value,
value*(30.48) );
else if ( unit == 'f' && convert == 'l' )
printf( "%.4f feet is %.4f miles.\n\n", value, value*(0.0001884)
);
else if ( unit == 'f' && convert == 'i' )
printf( "%.4f feet is %.4f inches.\n\n", value, value*(12)
);
else if ( unit == 'f' && convert == 'f' )
printf( "%.4f feet is %.4f feet.\n\n", value, value*(1)
);
else if ( unit == 'f' && convert == 'y' )
printf( "%.4f feet is %.4f yards.\n\n", value, value*(0.333333)
);
else if ( unit == 'y' && convert == 'm' )
printf( "%.4f yards is %.4f metres.\n\n", value, value*(0.9144)
);
else if ( unit == 'y' && convert == 'k' )
printf( "%.4f yards is %.4f kilometres.\n\n", value,
value*(0.0009144) );
else if ( unit == 'y' && convert == 'c' )
printf( "%.4f yards is %.4f centimetres.\n\n", value,
value*(91.44) );
else if ( unit == 'y' && convert == 'l' )
printf( "%.4f yards is %.4f miles.\n\n", value, value*(0.0000628)
);
else if ( unit == 'y' && convert == 'i' )
printf( "%.4f yards is %.4f inches.\n\n", value, value*(36)
);
else if ( unit == 'y' && convert == 'f' )
printf( "%.4f yards is %.4f feet.\n\n", value, value*(12)
);
else if ( unit == 'y' && convert == 'y' )
printf( "%.4f yards is %.4f yards.\n\n", value, value*(1)
);
else
printf( "ERROR! You have inputed incompatible dimensions.\n"
);
}
else if ( quantity == 't' )
{
if( unit == 's' && convert == 's' )
printf( "%.4f seconds is %.4f seconds.\n\n", value,
value*1 );
else if ( unit == 's' && convert == 'm' )
printf( "%.4f seconds is %.4f minutes.\n\n", value,
value*SEC_MIN );
else if ( unit == 's' && convert == 'h' )
printf( "%.4f seconds is %.4f hours.\n\n", value, value*SEC_MIN*MIN_HOU
);
else if( unit == 's' && convert == 'd' )
printf( "%.4f seconds is %.4f days.\n\n", value, value*SEC_MIN*MIN_HOU*HOU_DAY
);
else if ( unit == 's' && convert == 'o' )
printf( "%.4f seconds is %.4f months.\n\n", value, value*SEC_MIN*MIN_HOU*HOU_DAY*DAY_MON
);
else if ( unit == 's' && convert == 'y' )
printf( "%.4f seconds is %.4f years.\n\n", value, value*SEC_MIN*MIN_HOU*HOU_DAY*DAY_YEA
);
else if( unit == 'm' && convert == 's' )
printf( "%.4f minutes is %.4f seconds.\n\n", value,
value*MIN_SEC );
else if ( unit == 'm' && convert == 'm' )
printf( "%.4f minutes is %.4f minutes.\n\n", value,
value*1 );
else if ( unit == 'm' && convert == 'h' )
printf( "%.4f minutes is %.4f hours.\n\n", value, value*MIN_HOU
);
else if( unit == 'm' && convert == 'd' )
printf( "%.4f minutes is %.4f days.\n\n", value, value*MIN_HOU*HOU_DAY
);
else if ( unit == 'm' && convert == 'o' )
printf( "%.4f minutes is %.4f months.\n\n", value, value*MIN_HOU*HOU_DAY*DAY_MON
);
else if ( unit == 'm' && convert == 'y' )
printf( "%.4f minutes is %.4f years.\n\n", value, value*MIN_HOU*HOU_DAY*DAY_YEA
);
else if( unit == 'h' && convert == 's' )
printf( "%.4f hours is %.4f seconds.\n\n", value, value*HOU_MIN*MIN_SEC
);
else if ( unit == 'h' && convert == 'm' )
printf( "%.4f hours is %.4f minutes.\n\n", value, value*HOU_MIN
);
else if ( unit == 'h' && convert == 'h' )
printf( "%.4f hours is %.4f hours.\n\n", value, value*1
);
else if( unit == 'h' && convert == 'd' )
printf( "%.4f hours is %.4f days.\n\n", value, value*HOU_DAY
);
else if ( unit == 'h' && convert == 'o' )
printf( "%.4f hours is %.4f months.\n\n", value, value*HOU_DAY*DAY_MON
);
else if ( unit == 'h' && convert == 'y' )
printf( "%.4f hours is %.4f years.\n\n", value, value*HOU_DAY*DAY_YEA
);
else if( unit == 'd' && convert == 's' )
printf( "%.4f days is %.4f seconds.\n\n", value, value*DAY_HOU*HOU_MIN*MIN_SEC
);
else if ( unit == 'd' && convert == 'm' )
printf( "%.4f days is %.4f minutes.\n\n", value, value*DAY_HOU*HOU_MIN
);
else if ( unit == 'd' && convert == 'h' )
printf( "%.4f days is %.4f hours.\n\n", value, value*DAY_HOU
);
else if( unit == 'd' && convert == 'd' )
printf( "%.4f days is %.4f days.\n\n", value, value*1
);
else if ( unit == 'd' && convert == 'o' )
printf( "%.4f days is %.4f months.\n\n", value, value*DAY_MON
);
else if ( unit == 'd' && convert == 'y' )
printf( "%.4f days is %.4f years.\n\n", value, value*DAY_YEA
);
else if( unit == 'o' && convert == 's' )
printf( "%.4f months is %.4f seconds.\n\n", value, value*MON_DAY*DAY_HOU*HOU_MIN*MIN_SEC
);
else if ( unit == 'o' && convert == 'm' )
printf( "%.4f months is %.4f minutes.\n\n", value, value*MON_DAY*DAY_HOU*HOU_MIN
);
else if ( unit == 'o' && convert == 'h' )
printf( "%.4f months is %.4f hours.\n\n", value, value*MON_DAY*DAY_HOU
);
else if( unit == 'o' && convert == 'd' )
printf( "%.4f months is %.4f days.\n\n", value, value*MON_DAY
);
else if ( unit == 'o' && convert == 'o' )
printf( "%.4f months is %.4f months.\n\n", value, value*1
);
else if ( unit == 'o' && convert == 'y' )
printf( "%.4f months is %.4f years.\n\n", value, value*MON_YEA
);
else if( unit == 'y' && convert == 's' )
printf( "%.4f years is %.4f seconds.\n\n", value, value*YEA_DAY*DAY_HOU*HOU_MIN*MIN_SEC
);
else if ( unit == 'y' && convert == 'm' )
printf( "%.4f years is %.4f minutes.\n\n", value, value*YEA_DAY*DAY_HOU*HOU_MIN
);
else if ( unit == 'y' && convert == 'h' )
printf( "%.4f years is %.4f hours.\n\n", value, value*YEA_DAY*DAY_HOU
);
else if( unit == 'y' && convert == 'd' )
printf( "%.4f years is %.4f days.\n\n", value, value*YEA_DAY
);
else if ( unit == 'y' && convert == 'o' )
printf( "%.4f years is %.4f months.\n\n", value, value*YEA_MON
);
else if ( unit == 'y' && convert == 'y' )
printf( "%.4f years is %.4f years.\n\n", value, value*1
);
else
printf( "ERROR! You have inputed incompatible dimensions.\n"
);
}
else if ( quantity == 'w' )
{
if( unit == 'l' && convert == 'l' )
printf( "%.4f lbs is %.4f lbs.\n\n", value, value*LBS_LBS
);
else if ( unit == 'l' && convert == 'g' )
printf( "%.4f lbs is %.4f grams.\n\n", value, value*LBS_GRAMS
);
else if ( unit == 'l' && convert == 'k' )
printf( "%.4f lbs is %.4f kilograms.\n\n", value, value*LBS_KILOGRAMS
);
else if( unit == 'g' && convert == 'l' )
printf( "%.4f grams is %.4f lbs.\n\n", value, value*GRAMS_LBS
);
else if ( unit == 'g' && convert == 'g' )
printf( "%.4f grams is %.4f grams.\n\n", value, value*GRAMS_GRAMS
);
else if ( unit == 'g' && convert == 'k' )
printf( "%.4f grams is %.4f kilograms.\n\n", value,
value*GRAMS_KILOGRAMS );
else if( unit == 'k' && convert == 'l' )
printf( "%.4f kilograms is %.4f lbs.\n\n", value, value*KILOGRAMS_LBS
);
else if ( unit == 'k' && convert == 'g' )
printf( "%.4f kilograms is %.4f grams.\n\n", value,
value*KILOGRAMS_GRAMS );
else if ( unit == 'k' && convert == 'k' )
printf( "%.4f kilograms is %.4f kilograms.\n\n", value,
value*KILOGRAMS_KILOGRAMS );
else
printf( "ERROR! You have inputed incompatible dimensions.\n"
);
}
else
printf( "That is not a valid quantity.\n" );
}
© Francis O'Donovan
1999.