• HDUOJ 1236 排名


    这道题花了挺多时间,主要因为以下问题

    一、字符串的输入,这道题里用scanf更为安全

    二、每组数据结束后结构体内容应该清空,否则影响下组数据

    三、由于我的代码里成绩的读取是从1开始的,所以循环时要注意(因为解题数总为正数)

    #include<iostream>
    #include<stdio.h>
    #include<algorithm>
    #include<string.h>
    using namespace std;
    
    struct node
    {
        char name[100];
        int score = 0;
    } stu[1024];
    
    bool cmp(node a, node b)
    {
        if (a.score != b.score)
            return a.score>b.score;
        return strcmp(a.name, b.name)>0 ? 0 : 1;
    }
    
    int main()
    {
        int n, m, g = 0;
        //输入参数
        while (cin >> n >> m >> g)
        {
            int arr[100]={0};
            int pass = 0;
            //动态分配后导入分
            for (int i = 1; i <= m; i++)
            {
                cin >> arr[i];
            }
            //开始导入学生信息
            for (int i = 0; i < n; i++)
            {
                int t = 0;
                //姓名
                scanf("%s", &stu[i].name);
                //解题数
                scanf("%d", &t);
                //统计分数
                while (t!=0)
                {
                    int temp = 0;
                    scanf("%d", &temp);
                    stu[i].score += arr[temp];
                    t--;
                }
            }
            //对学生排序
            sort(stu, stu + n, cmp);
            //统计及格人数
            for (int i = 0; i < n; i++)
            {
                if (stu[i].score >= g)
                    pass++;
            }
            cout << pass << endl;
            //输出学生信息
            for (int i = 0; i < pass; i++)
            {
                printf("%s %d
    ", stu[i].name, stu[i].score);
            }
            for(int i=0;i<n;i++){
                memset(stu[i].name,0,100);
                stu[i].score=0;
            }
        }
        return 0;
    }
  • 相关阅读:
    Java程序员之JS(一) 入门
    Java虚拟机(一)之开篇
    JDK/JRE/JVM区别与联系
    web开发视频(一)之环境准备
    Spring MVC 教程,快速入门,深入分析
    Java中“==和equals”的区别
    如何查看电脑最大支持多少GB内存
    win10 计算器calc命令打不开
    Win10图标显示不正常解决办法
    在系统右键菜单上添加程序
  • 原文地址:https://www.cnblogs.com/DaiShuSs/p/9643225.html
Copyright © 2020-2023  润新知