zoukankan      html  css  js  c++  java
  • CODEFORCES problem 105A.Transmigration

      题目本身上手并不难,字符串处理+简单的排序。要注意的地方是浮点数的处理。

      依据计算机中浮点数的表示原理,在实际编程的过程中即使用一个确定的整数(假设是1)给一个浮点变量赋值 在查看变量时会发现实际存储的值是0.99999…….可以注意到在使用原来的EPX*k时也有可能出现这样的情况,本来是准确值应该是100,浮点运算却会得到 99.999……

    由于k只有两位小数,因此一个整数乘上k,最多还是只有两位

    我们令

          新的经验new_epx=epx*k+0.001

    当然可以用任何比0.01小的数,都能在不会影响正确结果的前提下修正错误结果。

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<math.h>
     4 char f[100][100];
     5 int  c[100];
     6 int main()
     7 {
     8     int n,m;
     9     double k;
    10     char s[30];
    11     int x,t=0,i,j,flag;
    12     scanf("%d %d %lf",&n,&m,&k);
    13     for(i=1;i<=n;i++)
    14     {
    15         scanf("%s %d",s,&x);
    16         if(x*k+0.001>=100)
    17         {
    18            t++;
    19            strcpy(f[t],s);c[t]=floor(x*k+0.001);
    20         }
    21     }
    22     for(i=1;i<=m;i++)
    23     {
    24         scanf("%s",s);
    25         for(j=1,flag=0;j<=t;j++)
    26            if(strcmp(s,f[j])==0){flag=1;break;}
    27         if(!flag)
    28         {
    29             t++;
    30             strcpy(f[t],s);
    31         }
    32     }
    33     char ss[30];
    34     int xx;
    35     for(i=1;i<=t;i++)
    36         for(j=i+1;j<=t;j++)
    37         {
    38             if(strcmp(f[i],f[j])>0)
    39             {
    40                 strcpy(ss,f[i]);
    41                 strcpy(f[i],f[j]);
    42                 strcpy(f[j],ss);
    43                 xx=c[i];c[i]=c[j];c[j]=xx;
    44             }
    45         }
    46     printf("%d
    ",t);
    47     for(i=1;i<=t;i++)
    48         printf("%s %d
    ",f[i],c[i]);
    49     return 0;
    50 }
  • 相关阅读:
    擅用伪元素::before(:before)和::after(:after)
    CSS清除浮动float
    javascript:void(0) 含义
    js运算符的优先级
    js的Array的sort()排序方法
    js将字符串转化为数字
    mvc:一
    六:使用注解整合开发
    五、整合struts2和mybatis和spring
    08_动态sql
  • 原文地址:https://www.cnblogs.com/keam37/p/3409416.html
Copyright © 2011-2022 走看看