微软编程之美初赛第一场第一题焦距
擦,太失败了,才做出来第一题,第二题找不到自己错在哪里,感觉题目都还好。还是自己太菜了,需要努力。
小数据是自己写的,大数据让老婆写了,这题充分体现了自己基础差,读入到转换成double一定要多走弯路,基础是王道啊~
第一题代码
#include<iostream> #include<string> #include<stdio.h> #include<stdlib.h> using namespace std; int main(){ int T; cin>>T; for(int Case=1;Case<=T;Case++){ char s1[20],s2[20],s3[20]; scanf("%s %s %s",s1,s2,s3); string ss1(s1),ss2(s2),ss3(s3); float f1,f2,f3; if(ss1[ss1.length()-2]=='n'){ ss1=ss1.substr(0,ss1.length()-2); f1=atof(const_cast<char*>(ss1.c_str()))/1000000; } else if(ss1[ss1.length()-2]=='u'){ ss1=ss1.substr(0,ss1.length()-2); f1=atof(const_cast<char*>(ss1.c_str()))/1000; } else if(ss1[ss1.length()-2]=='m'){ ss1=ss1.substr(0,ss1.length()-2); f1=atof(const_cast<char*>(ss1.c_str())); } else if(ss1[ss1.length()-2]=='c'){ ss1=ss1.substr(0,ss1.length()-2); f1=atof(const_cast<char*>(ss1.c_str()))*10; } else if(ss1[ss1.length()-2]=='d'){ ss1=ss1.substr(0,ss1.length()-2); f1=atof(const_cast<char*>(ss1.c_str()))*100; } else if(ss1[ss1.length()-2]<='9'&&ss1[ss1.length()-1]>='0'){ ss1=ss1.substr(0,ss1.length()-1); f1=atof(const_cast<char*>(ss1.c_str()))*1000; } if(ss2[ss2.length()-2]=='n'){ ss2=ss2.substr(0,ss2.length()-2); f2=atof(const_cast<char*>(ss2.c_str()))/1000000; } else if(ss2[ss2.length()-2]=='u'){ ss2=ss2.substr(0,ss2.length()-2); f2=atof(const_cast<char*>(ss2.c_str()))/1000; } else if(ss2[ss2.length()-2]=='m'){ ss2=ss2.substr(0,ss2.length()-2); f2=atof(const_cast<char*>(ss2.c_str())); } else if(ss2[ss2.length()-2]=='c'){ ss2=ss2.substr(0,ss2.length()-2); f2=atof(const_cast<char*>(ss2.c_str()))*10; } else if(ss2[ss2.length()-2]=='d'){ ss2=ss2.substr(0,ss2.length()-2); f2=atof(const_cast<char*>(ss2.c_str()))*100; } else if(ss2[ss2.length()-2]<='9'&&ss2[ss2.length()-1]>='0'){ ss2=ss2.substr(0,ss2.length()-1); f2=atof(const_cast<char*>(ss2.c_str()))*1000; } ss3=ss3.substr(0,ss3.length()-2); f3=atof(const_cast<char*>(ss3.c_str())); float f4=0.009; //printf("%0.2f",f4); printf("Case %d: %0.2fpx\n",Case,f3*f1/f2); } }
浙公网安备 33010602011771号