PAT a1137

目的:整合分数生成最终分数

输入:

P  做过在线平台测试的学生人数

M  期中考试的人数

N   期末考试人数

所以人数不超过10000

然后是三个部分分数数据包

格式:

学生id  分数  

id不超过20位的字符串

分数是非负整数,在线测试是小于等于900,其余是100;

输出:

输出每个合格的测评学生,合格标准,Gp大于等于200,总分不小于60.

格式:

学生id  Gp  Gmid-term  Gfinal  G

如果一些分数不存在,该位置输出-1

输出按照最终分数从高到低排序。G向上取整。

如果有分数一样的,按照id从小到大排序。

算法:

名字肯定用string存,所以用map比较好,或者unordered_map,。

分三个map存,再用一个vector,最后存合格的人的最终分数和名字。

#include<stdio.h>
#include<iostream>
#include<unordered_map>
#include<vector>
#include<algorithm>
#include<string>
#include<cmath>

using namespace std;

struct node{
    string id;
    int G;
} temp;
int P,M,N;
unordered_map<string,int> Gp,Gmid,Gfinal;
vector<node> ans;

bool cmp(node a,node b)
{
    if(a.G!=b.G)
    {
        return a.G>b.G;
    }else
    {
        return a.id<b.id;
    }
}
int main()
{
    scanf("%d%d%d",&P,&M,&N);

    for(int i=0;i<P;i++)
    {
        string name;
        int score;
        cin>>name>>score;
        if(Gp[name]==0)
        {
            Gmid[name] = -1;
            Gfinal[name] = -1;
        }
        Gp[name] = score;
    }
    for(int i=0;i<M;i++)
    {
        string name;
        int score;
        cin>>name>>score;
        if(Gmid[name]==0)
        {
            Gp[name] = -1;
            Gfinal[name] = -1;
        }
        Gmid[name] = score;
    }
    for(int i=0;i<N;i++)
    {
        string name;
        int score;
        cin>>name>>score;
        if(Gfinal[name]==0)
        {
            Gmid[name] = -1;
            Gp[name] = -1;
        }
        Gfinal[name] = score;
    }
    for(unordered_map<string,int>::iterator it = Gp.begin();it!=Gp.end();it++)
    {
        string id = it->first;
            if(Gp[id]>=200)
            {
                int g;
                if(Gmid[id]>Gfinal[id])//参加了期中考试
                {
                    g =(int)(Gmid[id]*0.4+Gfinal[id]*0.6+0.5);
                }else
                {
                    g = Gfinal[id];
                }
                if(g>=60)
                {
                    temp.id = id;
                    temp.G  = g;
                    ans.push_back(temp);
                }
            }
    }

    sort(ans.begin(),ans.end(),cmp);
    for(int i=0;i<ans.size();i++)
    {
        cout<<ans[i].id;
        string name = ans[i].id;
        printf(" %d %d %d %d\n",Gp[name],Gmid[name],Gfinal[name],ans[i].G);
    }
    return 0;
}

反思:是四舍五入,不是向上取整。而且。必须要有实验成绩,不然作废。

报错*** Using Compiler 'V6.7', folder: 'E:\keil_v5\ARM\ARMCLANG\Bin' Build target 'nor_sdram_zf_dtcm' assembling startup_MIMXRT1064.S... ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(1): error: A1167E: Invalid line start ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(2): error: A1167E: Invalid line start ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(3): error: A1167E: Invalid line start ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(4): error: A1163E: Unknown opcode MIMXRT1064 , expecting opcode or Macro ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(5): error: A1167E: Invalid line start ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(6): error: A1167E: Invalid line start ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(7): error: A1167E: Invalid line start ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(8): error: A1167E: Invalid line start ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(9): error: A1167E: Invalid line start ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(10): error: A1163E: Unknown opcode Copyright , expecting opcode or Macro ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(11): error: A1163E: Unknown opcode Copyright , expecting opcode or Macro ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(12): error: A1163E: Unknown opcode All , expecting opcode or Macro ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(13): error: A1167E: Invalid line start ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(14): error: A1163E: Unknown opcode SPDX-License-Identifier: , expecting opcode or Macro ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(15): error: A1167E: Invalid line start ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(16): error: A1163E: Unknown opcode Version: , expecting opcode or Macro ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(17): error: A1167E: Invalid line start ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(18): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(19): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(20): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(22): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(23): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(24): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(25): error: A1167E: Invalid line start ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(26): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(27): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(28): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(29): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(30): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(31): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(32): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(33): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(34): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(35): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(36): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(37): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(38): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(39): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(40): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(41): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(43): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(44): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(45): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(46): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(47): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(48): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(49): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(50): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(51): error: A1137E: Unexpected characters at end of line ..\..\libraries\sdk\startup\mdk\startup_MIMXRT1064.S(52): error: A1137E: Unexpected characters at end of line compiling main.c... ".\Objects\rt1064.axf" - 50 Error(s), 0 Warning(s). Target not created. Build Time Elapsed: 00:00:02 *** WARNING: Using ARM Cortex-M4 Simulator. ARM Cortex-M7 specific features are not modelled ! Load "E:\\RT1064\\RT1064_Library-master\\Example\\Coreboard_Demo\\E01_gpio_demo\\mdk\\Objects\\rt1064.axf" _____^ *** error 56: cannot open file Error: Flash Download failed - Could not load file 'E:\RT1064\RT1064_Library-master\Example\Coreboard_Demo\E01_gpio_demo\mdk\Objects\rt1064.axf' Flash Load finished at 20:18:58
最新发布
11-14
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值