需要注意的就是一些字符串处理方法(strcpy,strcmp)以及四舍五入的方法(加上0.5再强制转换类型),还有,如果跳出while(1)循环
英文题只是阅读麻烦一些,做起来反而很简单,加油~
代码:
/*
by qr jobdu 1484 2014-9-20
*/
#include <stdio.h>
#include <string.h>
int main(){
char str[100];
char flag[5][2]={"#","F","B","Y","0"};//初始化字符串 直接初始化 (strcpy 复制)
while(1){
scanf("%s",&str); //地点1 或者 #
if(strcmp(str,flag[0])==0){
break;
}
int sum=0;
while(1){
scanf("%s",&str); //地点2
int miles;
scanf("%d",&miles); //mile数
scanf("%s",&str); //种类
if(strcmp(str,flag[1])==0){ //F
sum=sum+2*miles;
}else if(strcmp(str,flag[2])==0){ //B
sum=sum+miles;
double temp=(double)miles/2;//先转变为double,否则为整除
temp=temp+0.5;
sum=sum+(int)temp;
}else if(strcmp(str,flag[3])==0){ //Y;
if(miles>500)
sum=sum+miles;
else
sum=sum+500;
}
scanf("%s",&str); //地点1
if(strcmp(str,flag[4])==0){
printf("%d\n",sum);
break;
}
}
}
return 0;
}