只过了一题,最初单位换算弄反了还花了好多时间。。第二题试图用模拟过小数据结果还WA。
#include<iostream> #include<stdio.h> #include<stdlib.h> #include<vector> #include<string> #include<cstring> #include <cmath> #include<algorithm> #include<stack> using namespace std; int T; double l; double i; double w; char u1[3]; char u2[3]; char u3[3]; double ans; void input() { ans=0; scanf("%lf%s %lf%s %lf%s",&l,u1,&w,u2,&i,u3); // cout<<l<<" "<<u1[0]<<u1[1]; } void solve() { if(strcmp(u1,"m")==0) { l=l*1000; } else if(strcmp(u1,"dm")==0) { l=l*100; } else if(strcmp(u1,"cm")==0) { l=l*10; } else if(strcmp(u1,"um")==0) { l=l/1000; } else if(strcmp(u1,"nm")==0) { l=l/1000000; } if(strcmp(u2,"m")==0) { w=w*1000; } else if(strcmp(u2,"dm")==0) { w=w*100; } else if(strcmp(u2,"cm")==0) { w=w*10; } else if(strcmp(u2,"um")==0) { w=w/1000; } else if(strcmp(u2,"nm")==0) { w=w/1000000; } //cout<<l<<" "<<w<<" "<<i<<endl; ans=i*l/w; // cout<<l<<endl; // switch(u1) // { // case "m": // l=l/1000; // break; // case "dm": // l=l/100; // break; // case "cm": // l=l/10; // break; // case "mm": // break; // case "um": // l=l*1000; // break; // case "nm": // l=l*1000000; // break; // // } } int main() { freopen("input.txt","r",stdin); scanf("%d",&T); for(int i=1;i<=T;i++) { input(); solve(); printf("Case %d: %.2lfpx\n",i,ans); } return 0; }