题意:字符串处理,分为a,b,c,d四部分,a,c为浮点数,b,d为字符串,除了d以外,其余均无中间空格。然后观察a*100/b,大于1就输出d a b a*100/b%,否则,就在最后一段话后将d输出。
题解:同上。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 char ss[1000][1000]; 6 const double eps=1e-8; 7 int main() 8 { 9 char s[1000]; 10 int top=0; 11 while(gets(s)) 12 { 13 double a,r,per; 14 char name[500],mg[500]; 15 sscanf(s,"%lf %s %lf",&a,mg,&r); 16 if(a<-eps) 17 break; 18 per=a*100.0/r; 19 int i,k; 20 for(i=0,k=0;k<3;i++) 21 if(s[i]==' ') 22 k++; 23 strcpy(name,s+i); 24 if(per<1.0-eps) 25 { 26 strcpy(ss[top],name); 27 top++; 28 } 29 else 30 { 31 printf("%s %.1lf %s %.0lf%%\n",name,a,mg,per); 32 } 33 } 34 if(top>0) 35 { 36 printf("Provides no significant amount of:\n"); 37 for(int i=0;i<top;i++) 38 puts(ss[i]); 39 } 40 return 0; 41 }