1586
1586
分析:讀第一個字符肯定為字母,創(chuàng)建一個數(shù)組保存化學式個元素分量的質(zhì)量,最后加起來即可
#include <stdio.h>
#define MAXN 20
int main()
{
double mass = 0.0;
char element = '\0';
double num[MAXN] = {0};//存放元素的質(zhì)量算芯,數(shù)組的和為化學式的質(zhì)量
int now = 0;//數(shù)組的標志位沐鼠,置為0
while ( (element = getchar() )!='\n')
{
if (element>='A'&&element<='Z')
{
switch (element)
{
case 'C':
num[now] += 12.01;
now++;
break;
case 'H':
num[now] += 1.008;
now++;
break;
case 'O':
num[now] += 16.00;
now++;
break;
case 'N':
num[now] += 14.01;
now++;
break;
default:
break;
}
}
else if (element >= '1'&&element <= '9')
{
num[now - 1] *= (double)(element-48);
}
else
printf("輸入不正確\n");
}
for (int i = 0; i <=now; i++)
{
mass += num[i];
}
printf("分子量為 %.3f g/mol", mass);
getchar();
return 0;
}
運行結(jié)果