题意:字符串处理,分为a,b,c,d四部分,a,c为浮点数,b,d为字符串,除了d以外,其余均无中间空格。然后观察a*100/b,大于1就输出d a  b a*100/b%,否则,就在最后一段话后将d输出。

题解:同上。

View Code
 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 }