ONickk 2023-11-27 22:32 采纳率: 0%
浏览 13

为什么只有五十分 谁能帮我改改看看 洛谷B2095白细胞计数


#include <stdio.h>
#include <math.h>
double arr[500];
int main(){
    int N,i;
    double sum1=0,sum2=0,max=0,min=100,aver2=0,max2=0;
    scanf("%d",&N);
    for(i=1;i<=N;i++){
        scanf("%lf",&arr[i]);
        if(max<arr[i]) max=arr[i];
        if(min>arr[i]) min=arr[i];    
        sum1+=arr[i];  
    }
    sum2=sum1-max-min;
    aver2=sum2/(N-2);
    for(i=1;i<=N;i++){
        if(arr[i]==max||arr[i]==min){
            continue;
        }
        if(fabs(arr[i]-aver2)>max2){
        max2=fabs(arr[i]-aver2);
    }
    }
    printf("%.2lf %.2lf",aver2,max2);
    return 0;
}
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/60296859010713.jpg "#left")

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-28 08:58
    关注

    【相关推荐】



    • 你可以看下这个问题的回答https://ask.csdn.net/questions/959237
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:习题 8.20 用指向指针的指针的方法对5个字符串排序并输出。
    • 您还可以看一下 炮哥带你学老师的快速带你入门深度学习与实战课程中的 5.7、池化运算小节, 巩固相关知识点
    • 除此之外, 这篇博客: 关于郭天祥老师10天学会51单片机第三讲最后一个定时器出现问题的解释中的 解释: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      我是怎么得到这个结论的呢?我进入了DEBUG功能,对tt的值进行了观察:
      在这里插入图片描述
      进入delay函数之前tt的值是0
      我设置了三个断点,第一个用来观察进入if循环后tt的值是否正常(正常的),第二个断点观察进入delay循环之前的tt值是否正常(确实被成功置0),第三个断点用来观察出delay循环后的tt值。
      在这里插入图片描述
      跳出delay循环之后tt的值变为了17
      在这里插入图片描述
      程序卡在了第二次while循环,且tt的值一直增长
      果不其然我们可以看到在出delay循环之后的tt值变为了17,此时跳出if循环进入第二次while循环的tt初始值已经是17,当然会卡在if循环外面一直计数增加永远也不可能达到4啦。而我们第一次设置的条件是tt==20,17比20小所以继续计数可以满足if条件语句,程序可以正常运行,且程序延迟的时间是由delay函数的时间即tt=17加上进入第二次while循环后在tt=17的基础上继续计数(此时只需要将tt从17累加到20),所以计时的时间并没有增长,依然是1s。

      但是tt的值为什么会是17呢?

      我们可以从上面两张图左边的sec看到delay函数比较精确的时间应该是1.1742-0.2175=0.9567s左右。
      而执行一次振荡周期*50000大概是0.0547s。(见下两张图)
      在这里插入图片描述
      在这里插入图片描述
      所以在delay函数执行期间,计数器计数0.9567/0.0537 = 17.4差不多是17的样子。

      所以在跳出delay循环之后,tt变为了17。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 修改了问题 11月27日
  • 修改了问题 11月27日
  • 修改了问题 11月27日
  • 创建了问题 11月27日

悬赏问题

  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题
  • ¥20 基于matlab的航迹融合 航迹关联 航迹插补
  • ¥15 用Matlab实现图中的光线追迹
  • ¥15 联想笔记本开机出现系统更新界面
  • ¥15 各位帮帮我 我不想重做系统
  • ¥30 微信小程序蓝牙数据透传
  • ¥15 加氢站氢负荷数据集来源
  • ¥15 umi接入sentry遇到问题