UVa1586 Molar mass, uva1586molarmass
# Include <stdio. h>
Int GetQuantity (char * q, char ** p)
{
Int quantity = 0;
While (* q & '0' <= * q & * q <= '9 ')
{
Quantity = quantity * 10 + (* q-'0 ');
++ Q;
}
If (quantity = 0)
Quantity = 1;
* P = q;
Return quantity;
}
Int main ()
{
Int T, quantity;
Double mass;
Char str [81], * p;
Scanf ("% d", & T );
While (T --)
{
Scanf ("% s", str );
Mass = 0.0;
P = str;
While (* p)
{
If (* p = 'C ')
{
Quantity = GetQuantity (p + 1, & p );
Mass + = (12.01 * quantity );
}
Else if (* p = 'H ')
{
Quantity = GetQuantity (p + 1, & p );
Mass + = (1.008 * quantity );
}
Else if (* p = 'O ')
{
Quantity = GetQuantity (p + 1, & p );
Mass + = (16.00 * quantity );
}
Else if (* p = 'n ')
{
Quantity = GetQuantity (p + 1, & p );
Mass + = (14.01 * quantity );
}
Else
{
++ P;
}
}
Printf ("%. 3f \ n", mass );
}
Return 0;
}