POJ 2810

题意:字符串处理,分为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 }

你可能感兴趣的:(poj)