题意:给你一个分子式,求出这个分子的摩尔质量是多少,已知分子式只含有 C、H、O、N 四种元素。
输入样例:
4//总个数
C
C6H5OH
NH2CH2COOH
C12H22O11
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#define maxn 10000
int main(){
int n;
scanf("%d", &n);
double a[maxn];
a['C'] = 12.01;
a['H'] = 1.008;
a['O'] = 16.00;
a['N'] = 14.01;
for (int i = 0; i < n; i++){
char b[maxn];
scanf("%s", b);
char zi;
double sum = 0;
int num = 0;
for (int j = 0; j < strlen(b); ){
int c = 0;
zi = b[j++];
while ( isdigit(b[j]) ){//b[j] != 'C' && b[j] != 'H' &&b[j] != 'O' &&b[j] != 'N'
if (++c == 1){
num = b[j] - '0';
}
else{
num = 10 * num + (b[j] - '0');
}
j++;
}
if (c == 0)num = 1;
//printf("num--------%d\n", num);
//printf("zi--------%c\n", zi);
sum += num*a[zi];
num = 1;
}
printf("%.3f\n", sum);
}
system("pause");
return 0;
}