很长的一个英文题 感觉还可以
这是代码
#include<stdio.h>
#include<string.h>
int main()
{
int n,l,i,m,shuliang;
char qian[500];
float sum,zhong;
scanf("%d",&n);
while(n--)
{
shuliang=0;
sum=0;
scanf("%s",qian);
l=strlen(qian);
for(i=0;i<l;i++)
{if(qian[i]>'A'&&qian[i]<'Z'&&(qian[i+1]>'9'||qian[i+1]<'0'))
{switch (qian[i])
{
case 'C':
sum+=12.01;break;
case 'H':
sum+=1.008;break;
case 'O':
sum+=16.00;break;
case 'N':
sum+=14.01;break;
}continue;
}
if(qian[i]>'A'&&qian[i]<'Z')
switch (qian[i])
{
case 'C':
zhong=12.01;break;
case 'H':
zhong=1.008;break;
case 'O':
zhong=16.00;break;
case 'N':
zhong=14.01;break;
}
if(qian[i]>='0'&&qian[i]<='9')
shuliang=shuliang*10+qian[i]-48;
if(qian[i]>='0'&&qian[i]<='9'&&(qian[i+1]>'9'||qian[i+1]<'0'))
{sum+=zhong*shuliang;shuliang=0;}
}printf("%.3f\n",sum);
}
}
#include<string.h>
int main()
{
int n,l,i,m,shuliang;
char qian[500];
float sum,zhong;
scanf("%d",&n);
while(n--)
{
shuliang=0;
sum=0;
scanf("%s",qian);
l=strlen(qian);
for(i=0;i<l;i++)
{if(qian[i]>'A'&&qian[i]<'Z'&&(qian[i+1]>'9'||qian[i+1]<'0'))
{switch (qian[i])
{
case 'C':
sum+=12.01;break;
case 'H':
sum+=1.008;break;
case 'O':
sum+=16.00;break;
case 'N':
sum+=14.01;break;
}continue;
}
if(qian[i]>'A'&&qian[i]<'Z')
switch (qian[i])
{
case 'C':
zhong=12.01;break;
case 'H':
zhong=1.008;break;
case 'O':
zhong=16.00;break;
case 'N':
zhong=14.01;break;
}
if(qian[i]>='0'&&qian[i]<='9')
shuliang=shuliang*10+qian[i]-48;
if(qian[i]>='0'&&qian[i]<='9'&&(qian[i+1]>'9'||qian[i+1]<'0'))
{sum+=zhong*shuliang;shuliang=0;}
}printf("%.3f\n",sum);
}
}