假设正在举行一场赛车比赛有20位选手参加,他们都以他们不同的时间完成了比赛.那么怎样把他们的时间转换为分数显示出来,时间短的分数高,时间长的分数低.当然任何情况都有可能出现,也许有些只要1小时就能完成比赛,而有些选手却要100个小时,先谢了.

解决方案 »

  1.   

    .....
    .....
    int      s=60000;//为比赛的程总长度,单位(米)
    float    speed[20];//用来存放每俩车的速度,(米/小时)
    float    time[20];//用来存放每们选手的完成比赛的用时(以小时)
     for(int=i,i<=20;i++)
     {
       speed[i]=max(1,rand());//速度为随机得到的正整数;
       time[i]=(float)s/speed[i];
       //添加将时间转化为分数的代码,因为可以假设速度可以为无穷大的(虽然rand()
      //最大为32767),所以我也无法给出一个多少分为满分的依据,但速度最小不会小于1
      //可以假设些速度为1是最低分.
     }
     ....
      

  2.   

    区间映射不就完了吗?

    time
    (0,100)
    score
    (0,100)
    score= 100-time;
    时间多的分数低。
      

  3.   

    : johns78那: johns78的方法不就可以了!