PTA结构体经典编程题

目录

第一题:计算平均成绩

第二题:平面向量加法

第三题:查找书籍

第四题:通讯录排序

第五题:计算职工工资


 

 

第一题:计算平均成绩

ead5ae0dde7d4200a3393a12e5ad7378.png思路:看到一个学生的基本信息,所以定义一个结构体变量,然后呢,不知道人数的多少,这里用vector设立一个动态数组,接着遍历所有的学生,输入信息。将学生的成绩累加起来,接着求解平均值。然后判断遍历输出即可

#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;struct Student {string id;string name;int score;
};int main() {int N;cin >> N;vector<Student> students(N);double sum = 0.0;for (int i = 0; i < N; i++) {cin >> students[i].id >> students[i].name >> students[i].score;sum += students[i].score;}double average = sum / N;printf("%.2lf\n", average);for (int i = 0; i < N; i++) {if (students[i].score < average) {cout << students[i].name << " " << students[i].id << endl;}}return 0;
}

第二题:平面向量加法

ed9e356af8874b7085f67af1e08e5a51.png思路:

简单定义见结构体变量,最后if(fabs(v.x)<0.05) 的判断是为了解决浮点数精度问题。在实际计算中,由于浮点数的表示方式和计算精度的限制,可能会导致一些微小的误差。因此,当两个浮点数本应为零但实际上非常接近零时,为了避免输出 -0.0 这样不符合要求的格式,可以通过判断绝对值小于一个很小的阈值(比如 0.05)来将其修正为零。

#include<stdio.h>
#include<math.h>
struct ping {double x;double y;
};
int main(){struct ping v,v1,v2;scanf("%lf%lf%lf%lf",&v1.x,&v1.y,&v2.x,&v2.y);v.x=v1.x+v2.x;v.y=v1.y+v2.y;if(fabs(v.x)<0.05) v.x=fabs(v.x);if(fabs(v.y)<0.05) v.y=fabs(v.y);printf("(%.1f, %.1f)",v.x,v.y);return 0;
}

第三题:查找书籍

查找书籍

348c3aa54aa946de942fa61af98deb27.png思路:这个题的细节还是蛮多的。整体思路很简单,定义结构体变量,然后输入每本书的书名和价格,但是,要注意在输入书的价格的时候,cin不读取最后的\n,这里必须要把\n给处理掉,这里在c++可以用cin.ignore,如果在c可以用getchar,如果不处理,那么\n一直在缓冲区,那么下一次\n就会被geiline给读取,影响结果。接着由于不知道最低价格多少,我们就令第一本书为最低价,然后遍历判断即可,最后输出书名的时候也要注意格式,如用printf输出string类型的时候,必须在变量名后加.c_str(),否则不能输出。

 

#include <iostream>
#include <vector>
#include <string>using namespace std;struct Book {string name;double price;
};int main() {int n;cin >> n;cin.ignore();  // 忽略第一个换行符vector<Book> books(n);for (int i = 0; i < n; i++) {getline(cin, books[i].name);cin >> books[i].price;cin.ignore();  // 忽略每个价格后面的换行符}double maxPrice = books[0].price;double minPrice = books[0].price;string maxBook = books[0].name;string minBook = books[0].name;for (int i = 1; i < n; i++) {if (books[i].price > maxPrice) {maxPrice = books[i].price;maxBook = books[i].name;}if (books[i].price < minPrice) {minPrice = books[i].price;minBook = books[i].name;}}printf("%.2lf, %s\n", maxPrice, maxBook.c_str());printf("%.2lf, %s", minPrice, minBook.c_str());return 0;
}

第四题:通讯录排序

d18ac6f4f9fb4d769cf2375807bf2bb9.png

思路:

这个题的关键是,要判断年龄的大小,这里我们不要想复杂,直接通过日期数的大小来判断,数越小,年龄越大。然后就是根据年龄大小来排序

#include<bits/stdc++.h>
using namespace std;
struct friends {string name;int birthday;string phone;
};
bool comparebirthday(friends friend1, friends friend2);
int main()
{int n;cin >> n;vector<friends>list(n);for (int i = 0; i < n; i++){cin >> list[i].name;cin >> list[i].birthday;cin >> list[i].phone;}//sortsort(list.begin(), list.end(), comparebirthday);//shuchufor (int i = 0; i < n; i++){cout<< list[i].name << ' ' << list[i].birthday << " " << list[i].phone << endl;}return 0;
}
bool comparebirthday(friends friend1, friends friend2)
{return friend1.birthday < friend2.birthday;
}

第五题:计算职工工资

f4fb415333494f1890d49a08673811a9.png思路:按步就班,先定义后输入然后输出,注意格式即可,

#include<bits/stdc++.h>
using namespace std;
struct salry
{string name;float gz1;float gz2;float zc;
};
int main()
{int n;cin >> n;vector<salry>worker(n);for (int i = 0; i < n; i++){cin >> worker[i].name >> worker[i].gz1 >> worker[i].gz2 >> worker[i].zc;}vector<float>sj(n);for (int i = 0; i < n; i++){sj[i] = worker[i].gz1 + worker[i].gz2 - worker[i].zc;}for (int i = 0; i < n; i++){printf("%s %.2lf\n", worker[i].name.c_str(), sj[i]);}return 0;
}

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神经网络模型预训练

根据神经网络各个层的计算逻辑用程序实现相关的计算&#xff0c;主要是&#xff1a;前向传播计算、反向传播计算、损失计算、精确度计算等&#xff0c;并提供保存超参数到文件中。 # coding: utf-8 import sys, os sys.path.append(os.pardir) # 为了导入父目录的文件而进行的…

【Python百练——第3练】矩形类及操作

&#x1f490;作者&#xff1a;insist-- &#x1f490;个人主页&#xff1a;insist-- 的个人主页 理想主义的花&#xff0c;最终会盛开在浪漫主义的土壤里&#xff0c;我们的热情永远不会熄灭&#xff0c;在现实平凡中&#xff0c;我们终将上岸&#xff0c;阳光万里 ❤️欢迎点…

Golang 原生Rpc Server实现

Golang 原生Rpc Server实现 引言源码解析服务端数据结构服务注册请求处理 客户端数据结构建立连接请求调用 延伸异步调用定制服务名采用TPC协议建立连接自定义编码格式自定义服务器 参考 引言 本文我们来看看golang原生rpc库的实现 , 首先来看一下golang rpc库的demo案例: 服…

python的制图

测试数据示例&#xff1a; day report_user_cnt report_user_cnt_2 label 2023-10-01 3 3 欺诈 2023-10-02 2 4 欺诈 2023-10-03 6 5 欺诈 2023-10-04 2 1 正常 2023-10-05 4 3 正常 2023-10-06 4 4 正常 2023-10-07 2 6 正常 2023-10-08 3 7 正常 2023-10-09 3 12 正常 2023-…

找不到DNS地址的解决方案

找不到DNS地址的解决方案 第一种解决方案&#xff1a;刷新DNS缓存第二种解决方案&#xff1a; 配置Internet协议版本4&#xff08;TCP/IPv4&#xff09;配置IP地址配置DNS地址 如何查看本机IPv4地址、子网掩码与默认网关 第一种解决方案&#xff1a;刷新DNS缓存 WINR输入cmd回…

基于SSH三大框架的员工管理系统

基于SSH三大框架的员工管理系统 摘要 本系统为本人学习SSH三大框架时所做的整合实例&#xff0c;系统角色包括普通用户和管理员两种&#xff0c;首页有管理员登录入口链接。系统功能主要包括管理员对用户的基本增、删、改、查和分页显示用户信息等。 系统环境 本系统使用ec…

【C++练级之路】【Lv.1】C++,启动!(命名空间,缺省参数,函数重载,引用,内联函数,auto,范围for,nullptr)

目录 引言入门须知一、命名空间1.1 作用域限定符1.2 命名空间的意义1.3 命名空间的定义1.4 命名空间的使用 二、C输入&输出2.1 cout输出2.2 cin输入2.3 std命名空间的使用惯例 三、缺省参数3.1 缺省参数概念3.2 缺省参数分类 四、函数重载4.1 函数重载概念4.2 函数重载分类…

BUUCTF 间谍启示录 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 在城际公路的小道上&#xff0c;罪犯G正在被警方追赶。警官X眼看他正要逃脱&#xff0c;于是不得已开枪击中了罪犯G。罪犯G情急之下将一个物体抛到了前方湍急的河流中&#xff0c;便头一歪突然倒地。警官X接近一看&…

公平锁和非公平锁以及他们的实现原理是什么

文章目录 什么是非公平锁和公平锁呢&#xff1f;我们来看看acquire(1)的源码如下&#xff1a;这里的判断条件主要做两件事&#xff1a;在tryAcquire()方法中&#xff0c;主要是做了以下几件事&#xff1a;公平锁的tryAcquire()&#xff0c;实现的原理图如下&#xff1a;我们来看…

ORA-00257: archiver error. Connect internal only, until freed 的解决方法

归档文件存储空间不足&#xff0c;导致出现该问题。 当我们将数据库的模式修改为归档模式的时候&#xff0c;如果没有指定归档目录&#xff0c;默认的归档文件就会放到Flash Recovery Area的目录&#xff0c;但是这个目录是有大小限制的&#xff0c;如果超过了这个大小&#x…

C#基础学习--命名空间和程序集

引用其他程序集 编译器接受源代码文件并生成一个名为程序集的输出文件。 在许多项目中&#xff0c;会想使用来自其他程序集的类或类型。这些程序集可能来自BCL或第三方供应商&#xff0c;或者自己创建的。这些程序集称为类库&#xff0c;而且它们的程序集文件的名称通常以dll…

微信小程序组件与插件有啥区别?怎么用?

目录 一、微信小程序介绍 二、微信小程序组件 三、微信小程序插件 四、微信小程序组件与插件有啥区别 一、微信小程序介绍 微信小程序是一种基于微信平台的应用程序&#xff0c;它可以在微信客户端内直接运行&#xff0c;无需下载和安装。微信小程序具有轻量、便捷、跨平台…

对比ProtoBuf和JSON的序列化和反序列化能力

1.序列化能力对比验证 在这里让我们分别使用PB与JSON的序列化与反序列化能力&#xff0c;对值完全相同的一份结构化数据进行不同次数的性能测试。 为了可读性&#xff0c;下面这一份文本使用JSON格式展示了需要被进行测试的结构化数据内容: {"age" : 20,"name…

线程安全的问题以及解决方案

线程安全 线程安全的定义 线程安全:某个代码无论是在单线程上运行还是在多线程上运行,都不会产生bug. 线程不安全:单线程上运行正常,多线程上运行会产生bug. 观察线程不安全 看看下面的代码: public class ThreadTest1 {public static int count 0;public static void main…

数据结构和算法-树与二叉树的存储结构以及树和二叉树和森林的遍历

文章目录 二叉树的存储结构二叉树的顺序存储二叉树的链式存储小结 二叉树的先中后序遍历例题小结 二叉树的层次遍历小结 由遍历序列构造二叉树一个遍历序列即使给定了前中后序&#xff0c;也不能确定该二叉树的形态可以确定的序列组合前序中序后序中序层序中序 小结若前序&…

算力基础设施领域国家标准发布

2023 年 11 月 27 日&#xff0c;国家标准 GB/T 43331-2023《互联网数据中心&#xff08;IDC&#xff09;技术和分级要求》正式发布。这一国家标准由中国信息通信研究院&#xff08;简称“中国信通院”&#xff09;联合多家企事业单位编制&#xff0c;旨在满足当前国家算力基础…

强化学习(一)——基本概念及DQN

1 基本概念 智能体 agent &#xff0c;做动作的主体&#xff0c;&#xff08;大模型中的AI agent&#xff09; 环境 environment&#xff1a;与智能体交互的对象 状态 state &#xff1b;当前所处状态&#xff0c;如围棋棋局 动作 action&#xff1a;执行的动作&#xff0c;…

C#——Delegate(委托)与Event(事件)

C#——Delegate&#xff08;委托&#xff09;与Event&#xff08;事件&#xff09; 前言一、Delegate&#xff08;委托&#xff09;1.是什么&#xff1f;2.怎么用&#xff1f;Example 1&#xff1a;无输入无返回值Example 2&#xff1a;有输入Example 3&#xff1a;有返回值Exa…

【C#】接口定义和使用知多少

给自己一个目标&#xff0c;然后坚持一段时间&#xff0c;总会有收获和感悟&#xff01; 最近在封装和参考sdk时&#xff0c;看到一个不错的写法&#xff0c;并且打破自己对接口和实现类固定的观念&#xff0c;这也充分说明自己理解掌握的知识点还不够深。 目录 前言一、什么是…

Kubernetes(K8s)_16_CSI

Kubernetes&#xff08;K8s&#xff09;_16_CSI CSICSI实现CSI接口CSI插件 CSI CSI(Container Storage Interface): 实现容器存储的规范 本质: Dynamic Provisioning、Attach/Detach、Mount/Unmount等功能的抽象CSI功能通过3个gRPC暴露服务: IdentityServer、ControllerServe…