PAT Basic Level 1059 C语言竞赛 解题思路及AC代码

2024-03-29 14:18

本文主要是介绍PAT Basic Level 1059 C语言竞赛 解题思路及AC代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PAT 乙级 1059 C语言竞赛 v1.0

    • 1. 题目简述及在线测试位置
    • 2. 基本思路
    • 3. 完整AC代码

1. 题目简述及在线测试位置

1.1 给定学生考号和名次信息,按要求输出获得的奖品
1.2 在线测试位置: 1059 C语言竞赛

2. 基本思路

2.1 本题考查了数据结构的概念:数据在计算机中如何存储?良好的存储方式 决定了 良好的数据处理效率。本文使用了结构体数组:数组下标代表学生ID、结构体中index字段代表名次、结构体中Received字段代表是否可以获得奖品

struct Info
{int index=0; //名次,默认0表示无效bool Received=true; //是否有资格获得奖品,默认为是
}a[MAX]; //数组a的下标代表学生ID

2.2 据此存储数据,然后按输入条件进行判定即可

3. 完整AC代码

#include <string> //stoi()
#include <iostream>
using namespace std;#define MAX 10001struct Info
{int index=0; //名次,默认0表示无效bool Received=true; //是否有资格获得奖品,默认为是
};bool isPrime(int Number);int main()
{struct Info a[MAX]; //数组a的下标代表学生IDint N, ID; cin >> N;for (int i = 1; i <= N; i++){cin >> ID;a[ID].index = i;}int Query; //查询次数string Identi; //查询IDcin >> Query;while (Query--){cin >> Identi;if (!a[stoi(Identi)].index) //无效名次cout << Identi << ": Are you kidding?" << endl;else if (!a[stoi(Identi)].Received) //已收到礼物cout << Identi << ": Checked" << endl;else if (a[stoi(Identi)].index == 1 ){cout << Identi << ": Mystery Award" << endl;a[stoi(Identi)].Received = false;}		else if ( isPrime(a[stoi(Identi)].index) ){cout << Identi << ": Minion" << endl;a[stoi(Identi)].Received = false;}else if ( !isPrime(a[stoi(Identi)].index) ){cout << Identi << ": Chocolate" << endl;a[stoi(Identi)].Received = false;}}return 0;
}bool isPrime(int Number)
{int N = Number;if (N > 1){for (int i = 2; i * i <= N; i++)if (N % i==0)return false;}else if(N == 1)return false;return true;
}

这篇关于PAT Basic Level 1059 C语言竞赛 解题思路及AC代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/858815

相关文章

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

MySQL 添加索引5种方式示例详解(实用sql代码)

《MySQL添加索引5种方式示例详解(实用sql代码)》在MySQL数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中,下面给大家分享MySQL添加索引5种方式示例详解(实用sql代码),... 在mysql数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中。索引可以在创建表时定义,也可

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

Python实现一键PDF转Word(附完整代码及详细步骤)

《Python实现一键PDF转Word(附完整代码及详细步骤)》pdf2docx是一个基于Python的第三方库,专门用于将PDF文件转换为可编辑的Word文档,下面我们就来看看如何通过pdf2doc... 目录引言:为什么需要PDF转Word一、pdf2docx介绍1. pdf2docx 是什么2. by

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强

通过cmd获取网卡速率的代码

《通过cmd获取网卡速率的代码》今天从群里看到通过bat获取网卡速率两段代码,感觉还不错,学习bat的朋友可以参考一下... 1、本机有线网卡支持的最高速度:%v%@echo off & setlocal enabledelayedexpansionecho 代码开始echo 65001编码获取: >

Java集成Onlyoffice的示例代码及场景分析

《Java集成Onlyoffice的示例代码及场景分析》:本文主要介绍Java集成Onlyoffice的示例代码及场景分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 需求场景:实现文档的在线编辑,团队协作总结:两个接口 + 前端页面 + 配置项接口1:一个接口,将o

SpringBoot实现Kafka动态反序列化的完整代码

《SpringBoot实现Kafka动态反序列化的完整代码》在分布式系统中,Kafka作为高吞吐量的消息队列,常常需要处理来自不同主题(Topic)的异构数据,不同的业务场景可能要求对同一消费者组内的... 目录引言一、问题背景1.1 动态反序列化的需求1.2 常见问题二、动态反序列化的核心方案2.1 ht

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

Go 语言中的 Struct Tag 的用法详解

《Go语言中的StructTag的用法详解》在Go语言中,结构体字段标签(StructTag)是一种用于给字段添加元信息(metadata)的机制,常用于序列化(如JSON、XML)、ORM映... 目录一、结构体标签的基本语法二、json:"token"的具体含义三、常见的标签格式变体四、使用示例五、使用