您的位置:首页 > 其它

uva 1586 分子量————C12H22O11读取数字12。。。

2017-12-13 20:55 459 查看
题意:给你一个分子式,求出这个分子的摩尔质量是多少,已知分子式只含有 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: