题目描述:分子量问题,给出一个物质的分子式,求分子量,本题中的分子式只包括4种原子,分别为C,H,O,N
原子量分别为12.01,1.008,16.00,14.01例如,C6H5OH的分子量94.108g/mol.
代码如下:略显罗嗦
#include<stdio.h>
#include<string.h>#include<ctype.h>
#define N 100
int search(char a,char* p){ //用于查找某字符在字符数组里的下标位置
int i;
for(i=0;i<4;i++)
if(a==p[i])
return i;
}
int main(){
char s[N], abc[] = "CHON";
int num[4] = {0}, t = 0, i = 0;
float sum;
scanf("%s", s);
while (isdigit(s[i]))
{
t = 10 * t + s[i] - '0';
i++;
}
for (; i < strlen(s); i++)
{
if (isalpha(s[i]))
if (isdigit(s[i + 1]) && isdigit(s[i + 2]))
num[search(s[i], abc)] += 10 * (s[i + 1] - '0') + (s[i + 2] - '0');
else
num[search(s[i], abc)] += isdigit(s[i + 1]) ? s[i + 1] - '0' : 1;
}
sum = 12.01 * num[0] + 1.008 * num[1] + 16 * num[2] + 14.01 * num[3];
if(t==0)t=1;
printf("%.3fg/mol\n", t * sum);
return 0;
}
由该题复习ctype.h文件和调试方法。