这是第一个我自己写的程序得AC的~~ 好开心 虽然里面写的还是有点复杂
#include <stdio.h>
#include <string.h>
#include <ctype.h>
char s[100];
double mol[]={12.01, 1.008, 16.00, 14.01};
int check(char ch)
{
switch(ch)
{
case 'C':
return 0;
case 'H':
return 1;
case 'O':
return 2;
case 'N':
return 3;
}
}
int main()
{
int n;
char p;
scanf ("%d",&n);
while (n--)
{
double sum=0;
scanf ("%s",s);
for (int i=0; i<strlen(s); i++)
{
int m=1;
if (isalpha(s[i]))
{
p=check(s[i]);
if (isdigit(s[i+1]))
{
i++;
if(isdigit(s[i+1]))
{ m=(s[i]-'0')*10+(s[i+1]-'0');i++;}
else m=s[i]-'0';
}
sum=sum+mol[p]*m;
continue;
}
}
printf("%0.3f\n", sum);
}
return 0;
}