当前位置: 首页 > news >正文

完成程序《大奖赛评分B》

学习目标:

  • 使用代码完成程序《大奖赛评分B》

题目:

  • 如今许多歌手大奖赛评分时,为了体现公平,在评委给出分数后统计平均得分时,都会去掉最高分和最低分。
  • 编写程序,读入评委打分(分数都是大于0的整数,评委人数大于等于5,小于等于50),去掉两个最高分和两个最低分,计算并输出平均得分(小数点后保留两位有效数字)。

逻辑:

  • 由题意得:此程序要求能够找到一个数组中的两个最大值和两个最小值,因此要对数组进行排序,用循环分支语句进行判断。
  • 其次要去统计平均得分,说明分数要是浮点类型。
  • 最后关注到要保留两位小数,按要求打印即可。

代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<stdlib.h>void print_arr(int arr[],int num)
{for (int j = 0; j < num; j++){printf("%d ", arr[j]);}printf("\n");
}int cmp_int(const void* e1, const void* e2)
{return *(int*)e1 - *(int*)e2;
}int main()
{char str[200] = { 0 };int arr[50] = { 0 };float num = 0;int sum = 0;gets(str);int i, j = 0, k = 0;for (i = 0; str[i] != '-'; i++) {if (str[i] >= '0' && str[i] <= '9') {arr[j] = arr[j] * 10 + (str[i] - '0');}else if (str[i] == ' ' && k < 50) {j++;k++;}}qsort(arr, 50, sizeof(int), cmp_int);int u = 0;for (int j = 0; j < 50; j++){if (arr[j] != 0){if (u > 1 && j < 48){sum += arr[j];num++;}u++;}}float average = (float)sum / num;printf("%.2f\n", average);return 0;
}


http://www.mrgr.cn/news/67146.html

相关文章:

  • Kafka相关知识点(下)
  • 什么是安全威胁情报?
  • Oracle分区技术特性
  • 开源办公软件 ONLYOFFICE 深入探索
  • 【JavaScript】JavaScript开篇基础(4)
  • 前端将网页转换为pdf并支持下载与上传
  • 高光谱激光雷达遥感团队成员白杰博士获全国激光雷达优博论文奖
  • 每日科技资讯:2024年11月06日【龙】农历十月初六 ---文末送书
  • Allegro如何恢复被打乱后的菜单
  • 「Mac畅玩鸿蒙与硬件28」UI互动应用篇5 - 滑动选择器实现
  • Halcon edges_sub_pix
  • 深度学习:自注意力机制(Self-attention)详解
  • 参数跟丢了之JS生成器和包装器
  • [ DOS 命令基础 2 ] DOS 命令详解-网络相关命令
  • 【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-15
  • 前端性能优化2
  • hive函数
  • Python小白学习教程从入门到入坑------第二十七课 魔法方法(语法进阶)
  • 【51蛋骗鸡16路电子开关编程CD4067使用switch】2021-12-27
  • leetcode刷题-回溯算法01
  • @Async注解提升Spring Boot项目中API接口并发能力
  • Redis主从复制
  • 华为海思招聘-芯片与器件设计工程师-模拟芯片方向- 机试题-真题套题题目——共8套(每套四十题)
  • 『VUE』20. 组件嵌套关系page(详细图文注释)
  • day-80 长度为 K 的子数组的能量值 I
  • 思维导图工具有哪些?10款思维导图特色介绍