【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专项练习带领读者掌握数组,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。 文章目录 7-1 计算最大值出现的次数7-2 求一批整数中出现最多的个位数字7-3 装箱问题7-4 数组-值钱的微信号7-5 数组-吹泡泡7-6 数组-数学鬼才 7…...
力扣:155. 最小栈(Python3)
题目: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部…...
uniapp实现在线PDF文件预览
下载pdf文件放在static文件夹下 bug:hbuildX创建的项目pdf文件夹可以放在根目录下面,但是cli创建的项目无法预览,只能放在static下面 按钮跳转预览页面 <button click"toPdf">pdf</button>methods: {toPdf() {uni.…...
Python tkinter实现复刻Windows记事本UI和菜单的文本编辑器(一)
下一篇:Python tkinter实现复刻Windows记事本UI和菜单的文本编辑器(二)-CSDN博客 介绍: Windows操作系统中自带了一款记事本应用程序,通常用于记录文字信息,具有简单文本编辑功能。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.…...
五、计算机网络
(一)OSI/RM 七层模型 七层模型是计算机网络的基石,整个计算机网络是构建与七层模型之上的。 在数据链路层,数据开始以帧为单位,网卡的 MAC 地址就是数据帧的地址,数据的传输开始有地址了。 局域网是工作…...
使用Grafana与MySQL监控监控网络延迟
文章目录 前言python程序使用Grafana步骤1:安装和配置 Grafana步骤2:配置 Grafana 数据源步骤3:创建 Grafana 仪表盘步骤4:将 Grafana 仪表盘嵌入到博客中 前言 在网络应用中,网络延迟是一个重要的指标,它…...
互联网常见职称
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设计软件有哪些好用和免费的吗?
在我们分享五个有用的原型工具之前,完成原型,将优化界面,这次是UI设计师的任务,UI设计软件对设计师非常重要,UI设计工具是否使用直接影响最终结果,然后有人会问:UI界面设计使用什么软件…...
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中,我们需要对我们写的map转换函数,process处理函数进行单元测试,测试的内容包括查看函数的输出结果是否符合以及函数内的状态是否正确更新,本文就记录几个测试过程中的要点 flink中测试函数 首先我们根据我们要测…...
【跟小嘉学习JavaWeb开发】第一章 开发环境搭建
系列文章目录 【跟小嘉学习JavaWeb开发】第一章 开发环境搭建 文章目录 系列文章目录[TOC](文章目录) 前言一、JDK的下载与安装1.1、关于JDK的版本问题 二、环境变量配置2.1、配置 JAVA_HOME、CLASSPATH2.2、配置path2.3、启动 cmd 三、编写代码、编译并执行3.1、编写代码&…...
CSS语法、选择器、属性
1.css语法 * 格式:选择器 {属性名1:属性值1;属性名2:属性值2;...}* 选择器:筛选具有相似特征的元素* 注意:* 每一对属性需要使用;隔开,最后一对属性可以不加 2.选择器:筛选具有相似特征的元素 * 分类:1. 基…...
深度学习读取txt训练数据绘制参数曲线图的方法
有一些深度学习模型是并不像yolo系列那样最终输出相应的参数图,有很多训练形成了一个训练log文件,于是需要读取log文件中的内容并绘制成曲线图。 如下实例,有一个log文件的部分截图,需要将其读取出来并绘制曲线图 废话不多说&…...
VB.NET—DataGridView控件教程详解
目录 前言: 过程: 第一步: 第二步: 第三步: 第四步: 第五步: 番外篇: 总结: 前言: DataGridView是.NET FormK中的一个Windows窗体控件,它提供了一个可视化的表格控件,允许用户以表格形式显示和编辑数据。它通常用于显示和编辑数据库…...
MCU测试科普|如何进行MCU芯片测试,具体流程是什么?
MCU芯片测试系统是一种专门用于检测MCU芯片性能和质量的综合性设备。它通常由硬件和软件两部分组成,硬件包括测试仪器、适配器、测试夹具等,用于连接被测MCU芯片和测试机,实现高效高精度的测试。软件部分通常包括测试程序、测试管理软件等&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简单图书管理系统设计与实现
摘要: 图书管理系统是一个专门针对图书馆管理而设计的系统,它可以帮助图书管理员有效的对图书进行管理,在图书管理系统的设计中,首先要考虑的是系统的需求分析,该系统的设计与实现涉及多个方面,包括数据库…...
深度学习中的Dropout正则化技术与Keras实践
1. 理解Dropout正则化的核心价值在深度学习模型训练过程中,过拟合就像一位记忆力超强却缺乏理解力的学生——它能完美复述训练数据中的每个细节,却无法应对新问题的变化。2012年由Hinton团队提出的Dropout技术,通过随机"关闭"神经网…...
5个核心功能+3种应用场景:NSC_BUILDER让您的Switch游戏管理更高效
5个核心功能3种应用场景:NSC_BUILDER让您的Switch游戏管理更高效 【免费下载链接】NSC_BUILDER Nintendo Switch Cleaner and Builder. A batchfile, python and html script based in hacbuild and Nuts python libraries. Designed initially to erase titleright…...
蓝桥杯STC15单片机PCA定时器配置避坑指南:从CMOD到中断函数,这些细节别搞错
蓝桥杯STC15单片机PCA定时器配置避坑指南:从CMOD到中断函数,这些细节别搞错 当你第一次尝试将STC15单片机的PCA模块配置为定时器时,可能会遇到各种"玄学"问题:中断死活进不去、定时时间飘忽不定、甚至程序直接跑飞。这些…...
如何用evernote-backup三步实现Evernote数据完整备份与永久掌控
如何用evernote-backup三步实现Evernote数据完整备份与永久掌控 【免费下载链接】evernote-backup Backup & export all Evernote notes and notebooks 项目地址: https://gitcode.com/gh_mirrors/ev/evernote-backup 你是否曾担心Evernote中的珍贵笔记突然消失&…...
3分钟解锁PDF宝藏:Python pdftotext终极文本提取指南
3分钟解锁PDF宝藏:Python pdftotext终极文本提取指南 【免费下载链接】pdftotext Simple PDF text extraction 项目地址: https://gitcode.com/gh_mirrors/pd/pdftotext 在日常办公和数据处理中,PDF文档就像一座座信息宝库,但如何快速…...
如何5分钟快速部署GreaterWMS:终极开源仓库管理系统指南
如何5分钟快速部署GreaterWMS:终极开源仓库管理系统指南 【免费下载链接】GreaterWMS This Inventory management system is the currently Ford Asia Pacific after-sales logistics warehousing supply chain process . After I leave Ford , I start this projec…...
手把手教你搞定PC网站支付宝扫码登录:从申请到上线的完整避坑指南
支付宝扫码登录全流程实战:从开发配置到异常处理 在PC端网站集成支付宝扫码登录功能,已经成为许多企业提升用户体验的重要选择。相比传统的账号密码登录方式,扫码登录不仅减少了用户记忆成本,还大幅提升了登录流程的安全性和便捷性…...
如何让静态图表“活“起来?excalidraw-animate一站式动画解决方案揭秘
如何让静态图表"活"起来?excalidraw-animate一站式动画解决方案揭秘 【免费下载链接】excalidraw-animate A tool to animate Excalidraw drawings 项目地址: https://gitcode.com/gh_mirrors/ex/excalidraw-animate 你是否曾为静态图表缺乏动感而…...
你正在交“AI Swarm Tax“?Stanford 研究戳破多 Agent 系统神话
你正在交"AI Swarm Tax"?Stanford 研究戳破多 Agent 系统神话 引言 多 Agent 系统(Multi-Agent Systems, MAS)——比如 planner agents、角色扮演辩论、agent swarm——被广泛认为是解决复杂任务的"更高级"架构。各大 …...
paraphrase-multilingual-MiniLM-L12-v2终极指南:5分钟掌握多语言语义匹配
paraphrase-multilingual-MiniLM-L12-v2终极指南:5分钟掌握多语言语义匹配 【免费下载链接】paraphrase-multilingual-MiniLM-L12-v2 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/paraphrase-multilingual-MiniLM-L12-v2 你是否需要处理多语言…...
