• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

喷水装置问题一 第一个函数不懂

#include  #include//包含快速排序的头文件  #include//数学函数头文件  double length(double r)//将R转换成有效值  {      return 2 * sqrt((double)(r * r - 1));  此处不理解 请大神解释 为什么要减1}  int com(const void *a,const void *b)//快速排序比较函数  {      return (*(double *)b - *(double *)a > 0 ? 1 : -1);//从大到小排序  }  int main()  {      int m,n,i,j = 0;//j统计满足>1的装置个数      double r[1020],temp,sum=0.0;//存储每个满足条件的可湿润范围      scanf("%d",&m);      while(m--)      {          scanf("%d",&n);          for(i = 0,j = 0; i < n; i ++)          {              scanf("%lf",&temp);              if(temp > 1)         //因为草坪的宽度为2米 所以舍弃半径小于等于1的装置                  r[j++] = length(temp);          }          qsort(r,j,sizeof(r[0]),com);  //qsort排序函数:r为要排序的数组、j为要排序的数组的长度、sizeif(r[0])为数组元素的大小(一个字节为单位)                                              //com为上面定义的判断大小函数的指针,需要自己定义        //for(i = 0; i < j; i ++)测试用          //  printf("%.2f ",r);          for(i = 0,sum = 0;i < j; i ++){              sum += r;              //sum存储装置所能湿润的长度              if(sum >= 20)             //如果sum大于或等于20,说明已经湿润完毕                  break;          }          printf("%d\n",i + 1);          //输出时加1,对应和i的关系,假如i=0是即退出循环,说明1个装置即可完成任务,此时可以看出需要装置个数和i之间的关系      }          system("pause");    return 0;  }

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与1

要是有人回答你这个问题,嗯,我服....

使用道具 举报

发新帖

发布任务需求已有1031168位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!