程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> UVa1586 Molar mass,uva1586molarmass

UVa1586 Molar mass,uva1586molarmass

編輯:C++入門知識

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;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved