毒瘤模拟题。。我tm卡在奇怪的点上了。。
我读入的时候老是停不下来(其实就是我怕麻烦。。结果后来调程序更麻烦。。)
那那那就直接上代码了啊
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 #include<queue> 7 #include<stack> 8 using namespace std; 9 const int oo=0x3f3f3f3f; 10 11 int z=1; 12 double zm,sz; 13 char zy,a; 14 15 int Min(int a,int b){return a<b?a:b;} 16 int Max(int a,int b){return a>b?a:b;} 17 18 int main(){ 19 //freopen("a.in","r",stdin); 20 //freopen("a.out","w",stdout); 21 zy=getchar(); 22 while((zy>'9'||zy<'0')&&zy!='-'&&(zy>'z'||zy<'a')) zy=getchar(); 23 while(zy!='='){ 24 z=1; 25 if(zy=='-') z=-1; 26 if(zy=='-'||zy=='+') zy=getchar(); 27 int y=0; 28 while(zy>='0'&&zy<='9'){ 29 y=(y<<1)+(y<<3)+zy-'0'; 30 zy=getchar(); 31 } 32 if(zy>='a'&&zy<='z'){ 33 if(y==0) y=1; 34 zm+=y*z; 35 a=zy; 36 zy=getchar(); 37 } 38 else{ 39 sz+=y*z*-1; 40 } 41 } 42 zy=getchar(); 43 while(zy!=EOF){ 44 z=-1; 45 if(zy=='-') z=1; 46 if(zy=='-'||zy=='+') zy=getchar(); 47 int y=0; 48 while(zy>='0'&&zy<='9'){ 49 y=(y<<1)+(y<<3)+zy-'0'; 50 zy=getchar(); 51 } 52 if(zy>='a'&&zy<='z'){ 53 zm+=y*z; 54 a=zy; 55 zy=getchar(); 56 continue; 57 } 58 else{ 59 sz+=y*z*-1; 60 } 61 if(y==0) zy=getchar(); 62 } 63 //printf("%.lf,%.lf ",sz,zm); 64 if(sz==0||zm==0){ 65 printf("%c=0.000 ",a); 66 return 0; 67 } 68 printf("%c=%.3lf ",a,double(sz/zm)); 69 return 0; 70 }