IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言:L2-015 互评成绩 (25 分) -> 正文阅读

[C++知识库]C语言:L2-015 互评成绩 (25 分)

一、题目

学生互评作业的简单规则是这样定的:每个人的作业会被 k 个同学评审,得到 k 个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。

输入格式:

输入第一行给出3个正整数 N(3 < N ≤104 ,学生总数)、k(3 ≤ k ≤ 10,每份作业的评审数)、M(≤ 20,需要输出的学生数)。随后 N 行,每行给出一份作业得到的 k 个评审成绩(在区间[0, 100]内),其间以空格分隔。

输出格式:

按非递减顺序输出最后得分最高的M个成绩,保留小数点后3位。分数间有1个空格,行首尾不得有多余空格。

输入样例:

6 5 3
88 90 85 99 60
67 60 80 76 70
90 93 96 99 99
78 65 77 70 72
88 88 88 88 88
55 55 55 55 55

输出样例:

87.667 88.000 96.000

二、方法1

1、思路

  1. 用二维数组 score 来存放评分(好像一维数组就可以),取和;
  2. 排序 score 减去最高分和最低分,取平均值,放入数组 a;
  3. 排序数组 a;
  4. 按要求输出。

2、代码

#include<stdio.h>
#include<stdlib.h>
#define max 10010

int n, k, m;
int i, j;
double sum;

double a[max];
int score[max][10];

int cmp1(const void* e1, const void* e2); // 整形
int cmp2(const void* e1, const void* e2); // 浮点型
int main()
{
    scanf("%d %d %d", &n, &k, &m);
    for (i = 0; i < n; i++)
    {
        sum = 0;
        for (j = 0; j < k; j++)
        {
            scanf("%d", &score[i][j]);
            sum += score[i][j];
        }
        qsort(score[i], k, sizeof(score[i][0]), cmp1);
        sum -= score[i][0];
        sum -= score[i][k - 1];
        a[i] = sum / (k - 2);
    }
    qsort(a, n, sizeof(a[0]), cmp2);
    for (i = n - m; i < n; i++) 
    {
        if (i == n - m)
            printf("%.3lf", a[i]);
        else
            printf(" %.3lf", a[i]);
    }
	return 0;
}

int cmp1(const void* e1, const void* e2)
{
    return *(int*)e1 > *(int*)e2 ? 1 : -1;
}

int cmp2(const void* e1, const void* e2)
{
    return *(double*)e1 > *(double*)e2 ? 1 : -1;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-09 20:30:34  更:2022-02-09 20:32:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:58:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码