当前位置: 首页 > news >正文

【C/PTA】数组练习(编程)

本文结合PTA专项练习带领读者掌握数组,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。

文章目录

    • 7-1 计算最大值出现的次数
    • 7-2 求一批整数中出现最多的个位数字
    • 7-3 装箱问题
    • 7-4 数组-值钱的微信号
    • 7-5 数组-吹泡泡
    • 7-6 数组-数学鬼才

7-1 计算最大值出现的次数

计算一维数组中最大值出现的次数。
输入格式:

输入在一行n( n<=1000,代表数组的大小),在下一行中输入 n个整数,为一维数组的元素。
输出格式:

输出最大值和出现的次数。
输入样例:

在这里给出一组输入。例如:

4
4 2 2 4

输出样例:

在这里给出相应的输出。例如:

4 2

#include <stdio.h>
int main()
{int n;scanf("%d",&n);int a[n];for(int i=0;i<n;i++){scanf("%d",&a[i]);}int max=a[0];int count=0;for(int i=0;i<n;i++){if(a[i]>max)max=a[i];}for(int i=0;i<n;i++){if(max==a[i])count++;}printf("%d %d",max,count);
}

7-2 求一批整数中出现最多的个位数字

给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。
输入格式:

输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。
输出格式:

在一行中按格式“M: n1 n2 …”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。
输入样例:

3
1234 2345 3456

输出样例:

3: 3 4

#include<stdio.h>
int main()
{int i, n;int a[1000];//储存输入的整数int b[10]={0};//记录每个个位数字出现的次数,一开始均为0int t=-1;//暂时存储每个整数的个位数字int max=-1;//记录出现次数最多的个位数字的次数scanf("%d", &n);for(i=0;i<n;i++){scanf("%d",&a[i]);}for(i=0;i<n;i++)//遍历每个整数{do//用do while将每一位都取出{t=a[i]%10;b[t]++; //如果是3,则b[3]的值加一a[i]=a[i]/10;}while(a[i]!=0);}//上一个循环结束后 b数组中储存的是每个数字对应的个数//现在找出出现次数最多的整数for(i=0;i<10;i++){if(b[i]>max){max=b[i];}}printf("%d:",max);for(i=0;i<10;i++){if(max==b[i])//打印次数{printf(" %d",i);}}return 0;
}

7-3 装箱问题

假设有N项物品,大小分别为s1​、s2​、…、si​、…、sN​,其中si​为满足1≤si​≤100的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。
输入格式:

输入第一行给出物品个数N(≤1000);第二行给出N个正整数si​(1≤si​≤100,表示第i项物品的大小)。
输出格式:

按照输入顺序输出每个物品的大小及其所在的箱子序号,每个物品占1行,最后一行输出所需的箱子数目。
输入样例:

8
60 70 80 90 30 40 10 20

输出样例:

60 1
70 2
80 3
90 4
30 1
40 5
10 1
20 2
5

#include<stdio.h>
int main()
{int n;scanf("%d",&n);int a[1000]={0};int k=1;//表示目前已使用的箱子数目for(int i=0;i<n;i++){int t;scanf("%d",&t);//依次读入每个物品的大小for(int j=0;j<k;j++){if(a[j]+t<=100){a[j] += t;printf("%d %d\n",t,j+1);break;//从第一个箱子开始遍历,若当前箱子能够容纳该物品,则输出物品大小和箱子序号,并跳出当前循环;}if(j==k-1){//如果遍历到最后一个箱子仍然无法容纳该物品,则开一个新的箱子 输出物品大小和新的箱子序号a[k] = t;k++;printf("%d %d\n",t,k);break;}}}printf("%d",k);
}

7-4 数组-值钱的微信号

总算到站了。尽管阿翔还是没有解锁出钥匙。但是who cares!听说会有学姐在火车站口迎接学弟,这才是当下最重要的事情啊!阿翔屁颠屁颠地跑向站口……

“胡大的同学请到这里来。”然而并没有学姐。阿翔看着这一个个英俊潇洒的帅比学长,失望极了。这时他注意到了旁边的那支队伍,怎么那么多学姐!她们右肩扛着学弟的行李,左肩扛着大旗,旗上还绣着fjnu。阿翔暗想,他要加入那支队伍,不然至少也得要几个微信号。忽然,他觉得身后传来阵阵杀气,扭头一看,学长们的眼里道道寒光裹挟着邪魅。阿翔咽了咽口水,他知道,为了革命吃点苦,是在所难免的了——

阿翔的钱包里共有K枚金币。这里有N个学长,每贿赂一个学长i,阿翔就能获得一个学姐的微信号,但是要消耗Bi枚金币。阿翔想在钱包还没被掏空的情况下得到尽可能多的微信号(注:钱包里的钱是一定不能花光的,至少也得给自己留一枚金币嘛!人生最大的悲剧莫过于积了一页的微信号,却没钱买流量!),问:阿翔最多能要到多少个微信号?
输入格式:

第一行为两个正整数 K(0 < K <= 100) 和 N(0 < N <= 50),表示阿翔共有K枚金币,这里共有N个学长。

第二行有N个整数Bi(0 <= Bi <= 100),表示贿赂第i个学长所需要消耗的金币数。

相邻两个整数间用空格隔开。
输出格式:

输出仅一行,即阿翔所能得到的最多的微信号数目。
输入样例:

20 10
10 9 8 7 6 5 4 3 2 1

输出样例:

5

#include <stdio.h>int main()
{int k,n;scanf("%d%d",&k,&n);long long int a[n];for(int i=0;i<n;i++){scanf("%lli",&a[i]);}for(int i=0;i<n-1;i++){for(int j=0;j<n-1-i;j++){if(a[j]>a[j+1]){int t=a[j];a[j]=a[j+1];a[j+1]=t;}}}int sum=0;for (int i=0;i<n;i++){sum+=a[i];if(sum>=k){printf("%d",i);break;}if(i==n-1&&sum<k)//最后一位学长{printf("%d",n);}}return 0;
}

7-5 数组-吹泡泡

Shc特别喜欢吹泡泡,他现在已经吹出了N个泡泡,根据他多年吹泡泡的经验,他很快就目测出了每个泡泡的半径(能精确到小数点后一位)。但是他的数学特别的差。 现在他想知道每个泡泡的体积大小。因为shc吹泡泡的技术高超,所以每个泡泡都是绝对的球体。你能帮助他求出每个泡泡的体积大小,并且从大到小输出吗?并且在输出体积的同时也请输出这个泡泡是shc吹的第几个泡泡。
输入格式:

第一行为一个正整数N(0 < N <= 1000),表示有N个泡泡。

接下来N行按吹泡泡的顺序每行输入一个半径r (r 为1到100的任意实数)

注意: Pai = 3.14

4/3 = 1.33
输出格式:

输出共N行,每行两个数字,第一个数字为泡泡的体积(保留两位小数),第二个数字表示泡泡的编号。两个数字之间用一个空格分隔。

注:如果两个泡泡的体积相同,应保证编号小的泡泡在前。
输入样例:

3
1.2
2.4
3.1

输出样例:

124.41 3
57.73 2
7.22 1

#include <stdio.h>
int main()
{int n;scanf("%d",&n);double a[n];//储存体积int b[n];//储存编号for(int i=0;i<n;i++){scanf("%lf",&a[i]);}for(int i=0;i<n;i++){a[i]=1.33*3.14*a[i]*a[i]*a[i];//编号为1、2、3...的泡泡体积b[i]=i+1;}//使用冒泡排序按照体积降序排序,同时保持编号顺序不变for(int i=0;i<n-1;i++){for(int j=0;j<n-i-1;j++){if(a[j]<a[j+1]){double t=a[j];a[j]=a[j+1];a[j+1]=t;int s=b[j];b[j]=b[j+1];b[j+1]=s;}}}for(int i=0;i<n;i++){printf("%.2f %d\n",a[i],b[i]);}return 0;}

7-6 数组-数学鬼才

As we know,HHD is a 数学鬼才。

这一天他为了给学弟学妹们展示他的计算能力,他决定口算阶乘。对于给出的每个N,他都会立刻算出N!的值。但是由于N!一般比较大,所以他只说出对2018取模的结果,即N!%2018。但是他发现看他表演的只有学弟,没有迷妹,所以他决定把这个任务交给你。
输入格式:

第一行输入一个正整数Q(0<Q<=100),表示Q次询问。

接下来Q行,每行一个N(0 < N <= 10^17)。
输出格式:

输出共Q行,每行对应一次询问,输出一个整数,即N!对2018取模的结果。
输入样例1:

2
4
6

输出样例1:

24
720

输入样例2:

1
19

输出样例2:

2000

#include <stdio.h>
#include <math.h>
int main()
{int q,sum=1;scanf("%d",&q);for(int i=1;i<=2018;i++){sum=(sum*i)%2018;}//先计算2018的阶乘并对其取余 为后面做铺垫for(int i=1;i<=q;i++){long long int n;scanf("%lli",&n);int t=1;if(n>2018)//如果输入的数大于2018,则将大数拆分为2018的倍数和余数{int s=n/2018;n%=2018;t=(t*(int)pow(sum,s))%2018;}for(int i=1;i<=n;i++){t=(t*i)%2018;}printf("%d\n",t);}
}

相关文章:

【C/PTA】数组练习(编程)

本文结合PTA专项练习带领读者掌握数组&#xff0c;刷题为主注释为辅&#xff0c;在代码中理解思路&#xff0c;其它不做过多叙述。 文章目录 7-1 计算最大值出现的次数7-2 求一批整数中出现最多的个位数字7-3 装箱问题7-4 数组-值钱的微信号7-5 数组-吹泡泡7-6 数组-数学鬼才 7…...

力扣:155. 最小栈(Python3)

题目&#xff1a; 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部…...

uniapp实现在线PDF文件预览

下载pdf文件放在static文件夹下 bug&#xff1a;hbuildX创建的项目pdf文件夹可以放在根目录下面&#xff0c;但是cli创建的项目无法预览&#xff0c;只能放在static下面 按钮跳转预览页面 <button click"toPdf">pdf</button>methods: {toPdf() {uni.…...

Python tkinter实现复刻Windows记事本UI和菜单的文本编辑器(一)

下一篇&#xff1a;Python tkinter实现复刻Windows记事本UI和菜单的文本编辑器&#xff08;二&#xff09;-CSDN博客 介绍&#xff1a; Windows操作系统中自带了一款记事本应用程序&#xff0c;通常用于记录文字信息&#xff0c;具有简单文本编辑功能。Windows的记事本可以新…...

【系统架构设计】架构核心知识: 3.3 DSSA和ABSD

目录 一 特定领域软件架构DSSA 1 DSSA 2 DSSA的基本活动和产物 3 参与DSSA的人员 4 建立过程...

Git的安装和常用命令Git与SVN的区别Gitee远程仓库团队开发代码共享演示

目录 一、Git入门 1.1 Git简介 1.2 Git与SVN的区别 1.2.1 详解 1.2.2 图解 1.3 Git相较于SVN的优势与劣势 1.3.1 Git的优势与劣势 1.3.2 SVN的优势与劣势 1.4 Git的工作流程 1.4.1 图解 1.4.2 详解 二、Git的安装以及常用命令 2.1 Git官网链接 2.2 安装步骤 2.…...

五、计算机网络

&#xff08;一&#xff09;OSI/RM 七层模型 七层模型是计算机网络的基石&#xff0c;整个计算机网络是构建与七层模型之上的。 在数据链路层&#xff0c;数据开始以帧为单位&#xff0c;网卡的 MAC 地址就是数据帧的地址&#xff0c;数据的传输开始有地址了。 局域网是工作…...

使用Grafana与MySQL监控监控网络延迟

文章目录 前言python程序使用Grafana步骤1&#xff1a;安装和配置 Grafana步骤2&#xff1a;配置 Grafana 数据源步骤3&#xff1a;创建 Grafana 仪表盘步骤4&#xff1a;将 Grafana 仪表盘嵌入到博客中 前言 在网络应用中&#xff0c;网络延迟是一个重要的指标&#xff0c;它…...

互联网常见职称

1、管理层 CEO – Chief Executive Officer 首席执行官 VP – Vice President 副总裁 HRD – Humen Resource Director 人力资源总监 OD – Operations Director 运营总监 MD – Marketing Director 市场总监 GM – General Manager 总经理 PM – Production Manager 产品…...

UI设计软件有哪些好用和免费的吗?

在我们分享五个有用的原型工具之前&#xff0c;完成原型&#xff0c;将优化界面&#xff0c;这次是UI设计师的任务&#xff0c;UI设计软件对设计师非常重要&#xff0c;UI设计工具是否使用直接影响最终结果&#xff0c;然后有人会问&#xff1a;UI界面设计使用什么软件&#xf…...

Linux开发工具之编译器gcc/g++

文章目录 1.查看版本2.程序的翻译3.gcc指令3.1gcc hello.c -o hello3.2gcc -E hello.c -o hello.i3.3gcc -S hello.c -o hello.s3.4gcc -c hello.c -o hello.o3.5gcc hello.o -o hello 4.动静态库[详讲链接阶段]4.1初步认识4.2动态链接4.3静态链接 1.查看版本 gcc -v. 2.程序…...

【Kurbernetes资源管理】陈述式资源管理方式

陈述式 一、 理论部分1.1 管理K8s资源的基本方法1.1.1 陈述式资源管理方式1.1.2声明式资源管理方式1.1.3 GUI式资源管理方法 1.2 陈述式资源管理方式1.2.1 Kubelet工具简介1.2.2 kubectl 的基本语法1.2.3 Kubectl工具的自动补全功能 1.3 Kubernetes Service1.4 Service 的类型(…...

flink测试map转换函数和process函数

背景 在flink中&#xff0c;我们需要对我们写的map转换函数&#xff0c;process处理函数进行单元测试&#xff0c;测试的内容包括查看函数的输出结果是否符合以及函数内的状态是否正确更新&#xff0c;本文就记录几个测试过程中的要点 flink中测试函数 首先我们根据我们要测…...

【跟小嘉学习JavaWeb开发】第一章 开发环境搭建

系列文章目录 【跟小嘉学习JavaWeb开发】第一章 开发环境搭建 文章目录 系列文章目录[TOC](文章目录) 前言一、JDK的下载与安装1.1、关于JDK的版本问题 二、环境变量配置2.1、配置 JAVA_HOME、CLASSPATH2.2、配置path2.3、启动 cmd 三、编写代码、编译并执行3.1、编写代码&…...

CSS语法、选择器、属性

1.css语法 * 格式&#xff1a;选择器 {属性名1:属性值1;属性名2:属性值2;...}* 选择器:筛选具有相似特征的元素* 注意&#xff1a;* 每一对属性需要使用&#xff1b;隔开&#xff0c;最后一对属性可以不加 2.选择器&#xff1a;筛选具有相似特征的元素 * 分类&#xff1a;1. 基…...

深度学习读取txt训练数据绘制参数曲线图的方法

有一些深度学习模型是并不像yolo系列那样最终输出相应的参数图&#xff0c;有很多训练形成了一个训练log文件&#xff0c;于是需要读取log文件中的内容并绘制成曲线图。 如下实例&#xff0c;有一个log文件的部分截图&#xff0c;需要将其读取出来并绘制曲线图 废话不多说&…...

VB.NET—DataGridView控件教程详解

目录 前言: 过程: 第一步: 第二步: 第三步: 第四步: 第五步&#xff1a; 番外篇: 总结: 前言: DataGridView是.NET FormK中的一个Windows窗体控件&#xff0c;它提供了一个可视化的表格控件&#xff0c;允许用户以表格形式显示和编辑数据。它通常用于显示和编辑数据库…...

MCU测试科普|如何进行MCU芯片测试,具体流程是什么?

MCU芯片测试系统是一种专门用于检测MCU芯片性能和质量的综合性设备。它通常由硬件和软件两部分组成&#xff0c;硬件包括测试仪器、适配器、测试夹具等&#xff0c;用于连接被测MCU芯片和测试机&#xff0c;实现高效高精度的测试。软件部分通常包括测试程序、测试管理软件等&am…...

单向循环代码实现cpp

// 单向循环链表 class CircleLink { public:CircleLink(){head_ new Node();tail_ head_;head_->next_ head_;}~CircleLink(){Node* p head_->next_;while (p ! head_){head_->next_ p->next_;delete p;p head_->next_;}delete head_;}public:// 尾插法 …...

【原创】java+jsp+servlet简单图书管理系统设计与实现

摘要&#xff1a; 图书管理系统是一个专门针对图书馆管理而设计的系统&#xff0c;它可以帮助图书管理员有效的对图书进行管理&#xff0c;在图书管理系统的设计中&#xff0c;首先要考虑的是系统的需求分析&#xff0c;该系统的设计与实现涉及多个方面&#xff0c;包括数据库…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

自然语言处理——文本分类

文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益&#xff08;IG&#xff09; 分类器设计贝叶斯理论&#xff1a;线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别&#xff0c; 有单标签多类别文本分类和多…...