首页 > 其他分享 >PAT Basic 1004. 成绩排名

PAT Basic 1004. 成绩排名

时间:2023-02-24 20:44:07浏览次数:40  
标签:成绩排名 PAT scanf tempId char strcpy tempGrade 1004 tempName

PAT Basic 1004. 成绩排名

1. 题目描述:

读入 n(> 0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

2. 输入格式:

每个测试输入包含 1 个测试用例,格式为

第 1 行:正整数 n
第 2 行:第 1 个学生的姓名 学号 成绩
第 3 行:第 2 个学生的姓名 学号 成绩
  ... ... ...
第 n+1 行:第 n 个学生的姓名 学号 成绩

其中姓名学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。

3. 输出格式:

对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。

4. 输入样例:

3
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95

5. 输出样例:

Mike CS991301
Joe Math990112

6. 性能要求:

Code Size Limit
16 KB
Time Limit
400 ms
Memory Limit
64 MB

思路:

输入保证了一组测试用例中没有两个学生的成绩是相同的。主要考察基础的IO操作,这里因为数组间没法直接赋值,用到了string.h中的strcpy函数。

C 库函数 char *strcpy(char *dest, const char *src)src 所指向的字符串复制到 dest

需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。

My Code:

#include <stdio.h>
#include <string.h>

int main(void)
{
    char maxName[11], maxId[11];
    //unsigned char maxGrade = 0;
    int maxGrade = 0;
    
    char minName[11], minId[11];
    //unsigned char minGrade = 0;
    int minGrade = 0;
    
    char tempName[11], tempId[11];
    //unsigned char tempGrade = 0;
    int tempGrade = 0;
    
    int n = 0;
    
    scanf("%d", &n);
    
    scanf("%s", tempName);
    scanf("%s", tempId);
    scanf("%d", &tempGrade);
    
    //maxGrade = minGrade = tempGrade;
    maxGrade = tempGrade;
    minGrade = tempGrade;
    strcpy(maxName, tempName);
    strcpy(minName, tempName);
    strcpy(maxId, tempId);
    strcpy(minId, tempId);
    
    while(n > 1)
    {
        scanf("%s", tempName);
        scanf("%s", tempId);
        scanf("%d", &tempGrade);
        
        if(tempGrade > maxGrade)
        {
            strcpy(maxName, tempName); 
            strcpy(maxId, tempId);
            maxGrade = tempGrade;
        }
        
        if(tempGrade < minGrade)
        {
             strcpy(minName, tempName);
             strcpy(minId, tempId);
             minGrade = tempGrade;
        }
        
        n--;
    }
    
    printf("%s %s\n", maxName, maxId);
    printf("%s %s\n", minName, minId);
    
    return 0;
}

标签:成绩排名,PAT,scanf,tempId,char,strcpy,tempGrade,1004,tempName
From: https://www.cnblogs.com/tacticKing/p/17153065.html

相关文章

  • PAT Basic 1003. 我要通过!
    PATBasic1003.我要通过!1.题目描述:“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送——只要读入的字符串满足下列条件,系统......
  • [Typescript] Identity function pattern - Using Identity function to enforce the
    SowehavetheconfigObjlooklikethis:exportconstconfigObj={routes:["/","/about","/contact"],fetchers:{//@ts-expect-error"/does-not......
  • Day 11 11.1 Xpath解析
    xpath解析xpath在Python的爬虫学习中,起着举足轻重的地位,对比正则表达式re两者可以完成同样的工作,实现的功能也差不多,但xpath明显比re具有优势,在网页分析上使re退居二线。......
  • ZOJ 1004 Anagrams by Stack(dfs堆栈)
    AnagramsbyStackTimeLimit:2Seconds     MemoryLimit:65536KBHowcananagramsresultfromsequencesofstackoperations?Therearetwosequenc......
  • PAT 甲级 1005 Spell It Right(20)
    Givenanon-negativeinteger N,yourtaskistocomputethesumofallthedigitsof N,andoutputeverydigitofthesuminEnglish.InputSpecification:Ea......
  • CF845G - Shortest Path Problem?
    题意:求带边权无向图上\(1\)到\(n\)的异或最短路,可以重复经过某条边。首先,我们考虑从\(x\)到\(y\)的路径\(A\),它的权值是\(a\)。我们从路径中途的某个地方离开路......
  • inux配置PATH路径
    查看PATH:echo$PATH以添加python3为列修改方法一:exportPATH=PATH:PATH:PATH:HOME/bin:exportPATH=PATH:PATH:PATH:HOME/bin:/usr/local/python3/bin//配置完......
  • PAT 甲级 1004 Counting Leaves(30)
    Afamilyhierarchyisusuallypresentedbyapedigreetree.Yourjobistocountthosefamilymemberswhohavenochild.InputSpecification:Eachinputfilec......
  • @PathVariable相关注意点
    1、使用@PathVariable注解时,说明url路径采用restful风格,即http://localhost:8080/zgbj/1/22、@PathVariable注解也可以接受多个参数,例如publicModelAndViewconfigAntenn......
  • (我自己总结的最完美的vue和nginx的代理解析)vue的proxy和pathRewrite和nginx的代理的解
    vue编译器和nginx都能启动我们前端项目的,二者都能对前端的请求进行转发代理到后端项目中我们本地电脑也可以下载一个nginx启动我们的前端项目,而不用通过vue编译器启动。......