UVa 1586 Molar mass
2017-10-19 23:07
411 查看
用switch进行用字符型遍历,sum进行累加。
遇到数字后看下一位是否为数字,如果是将前一位数字乘10加上该位即可。ch减去字符型0为了得到整型
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main(void)
{
char ch[85], cup;
int n, len, t;
const float C = 12.01, O = 16.00, H = 1.008, N = 14.01;
float count, num, sum, digit[100];
scanf("%d", &n);
while(n--)
{
sum = 0;
scanf("%s", ch);
len = strlen(ch);
for(int i = 0, t = 0; i <= len; i++)
{
int num = 1;
if (isdigit(ch[i]))
{
if (isdigit(ch[i+1]))
{
num = (ch[i] - '0') * 10 + ch[i+1] - '0';
}
else
num = ch[i] - '0';
}
switch(ch[i-1])
{
case 'C': sum += C*num; break;
case 'O': sum += O*num; break;
case 'H': sum += H*num; break;
case 'N': sum += N*num; break;
}
}
printf("%.3f\n", sum);
}
return 0;
}
遇到数字后看下一位是否为数字,如果是将前一位数字乘10加上该位即可。ch减去字符型0为了得到整型
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main(void)
{
char ch[85], cup;
int n, len, t;
const float C = 12.01, O = 16.00, H = 1.008, N = 14.01;
float count, num, sum, digit[100];
scanf("%d", &n);
while(n--)
{
sum = 0;
scanf("%s", ch);
len = strlen(ch);
for(int i = 0, t = 0; i <= len; i++)
{
int num = 1;
if (isdigit(ch[i]))
{
if (isdigit(ch[i+1]))
{
num = (ch[i] - '0') * 10 + ch[i+1] - '0';
}
else
num = ch[i] - '0';
}
switch(ch[i-1])
{
case 'C': sum += C*num; break;
case 'O': sum += O*num; break;
case 'H': sum += H*num; break;
case 'N': sum += N*num; break;
}
}
printf("%.3f\n", sum);
}
return 0;
}
相关文章推荐
- (uva)1586 Molar mass
- Uva 1586 molar mass
- UVA 1586-Molar Mass
- UVa 1586 - Molar Mass
- UVa1586——Molar Mass
- UVA1586 UVALive3900 Molar mass
- UVa1586 Molar Mass
- uva1586----Molar mass
- UVA1586 - Molar mass
- UVA - 1586 Molar mass
- 【Uva 1586】 Molar mass
- UVa 1586 Molar Mass
- UVA 1586 - Molar mass
- 【UVa】[1586]Molar mass
- UVa 1586 Molar mass(分子量)
- UVa 1586 - Molar Mass
- 分子量(Molar Mass, ACM/ICPC Seoul 2007, UVa1586)
- Uva 1586 Molar mass
- UVa 1586 Molar mass (计算分子量,不含扩号)
- UVa 1586 - Molar mass