【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);}
}

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

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

相关文章

代码随想录Day42-图论:力扣第417m、841m、463e题

417m. 太平洋大西洋水流问题 题目链接 代码随想录文章讲解链接 方法一&#xff1a; 用时&#xff1a;1h0m58s 思路 直接找哪些点既可以到达太平洋又可以到达大西洋比较麻烦&#xff0c;换个角度&#xff0c;找到太平洋可以逆流而上到达的点&#xff0c;再找到大西洋可以逆…

BigDecimal 类型的累加操作

BigDecimal 累加操作 .add操作

C语言:深入浅出qsort方法,编写自己的qsort完成冒泡排序

目录 什么是qsort&#xff1f; 函数原型 比较函数 compar 排序整型数组 排序结构体数组 根据成员字符排序 strcmp函数 根据成员整型排序 自定义qsort实现冒泡排序 qsort的实现原理 具体步骤 快速排序示例代码&#xff1a; 什么是qsort&#xff1f; qsort是 C …

geoserver发布同一字段的多值渲染

Geoserver之同一字段的多值渲染 有时候我们需要对一个shp的某一字段值中的不同值进行区分展示&#xff0c;但是一般的渲染都是按照统一图层展示的&#xff0c;因此为了更好的效果&#xff0c;我们选择使用uDig等工具处理。 文章目录 Geoserver之同一字段的多值渲染前言一共是分…

休眠和睡眠有哪些区别?如何让电脑一键休眠?

电脑中有休眠和睡眠&#xff0c;那么它们有什么区别呢&#xff1f;下面我们就通过本文来了解一下。 休眠和睡眠的区别 电脑在睡眠状态时&#xff0c;会切断内存之外的设备电源&#xff0c;电脑会进入睡眠状态&#xff0c;当再次唤醒电脑后&#xff0c;不会影响睡眠前保存好的工…

机器学习练习1

线性回归 数据集模型,第一列代表人口,第二列代表利润 此处的线性回归 与 常规的 y wx b 不同的是 将b换成了w的一部分 故需要在数据集x前面加个1, 求出b . 可以简化计算,只需要一个乘法就可以

网络安全入门必学内容

网络安全入门 必/学/内/容/ 随着时代的发展&#xff0c;经济、社会、生产、生活越来越依赖网络。而随着万物互联的物联网技术的兴起&#xff0c;线上线下已经打通&#xff0c;虚拟世界和现实世界的边界正变得模糊。这使得来自网络空间的攻击能够穿透虚拟世界的边界&#xff0…

vscode中 vue3+ts 项目的提示失效,volar插件失效问题解决方案

文章目录 前情提要bug回顾解决方案最后 前情提要 说起来很耻辱&#xff0c;从mac环境换到window环境&#xff0c;vscode的配置都是云端更新过来的&#xff0c;应该是一切正常才对&#xff0c;奇怪的是我的项目环境出现问题了&#xff0c;关于组件的ts和追踪都没有效果&#xff…

pandas教程:Introduction to pandas Data Structures pandas的数据结构

文章目录 Chapter 5 Getting Started with pandas5.1 Introduction to pandas Data Structures1 Series2 DataFrame3 Index Objects (索引对象) Chapter 5 Getting Started with pandas 这样导入pandas&#xff1a; import pandas as pde:\python3.7\lib\site-packages\numpy…

vscode设置pycharm中的项目路径和debug方法

真大佬在这 真大佬在这 必须给大佬star 命令行运行&#xff1a; export PYTHONPATH:pwd:/home/bennie/bennie/bennie_project/AI_Lab python main.py 当关闭此命令行时&#xff0c;临时路径会清除&#xff0c;可以将上述export的整条语句&#xff0c;加入~/.bashrc中 该命令中…

uniapp cli化一键游项目启动报错总结

问题1、使用hbuilder运行指令&#xff0c;开始编译后没有反应&#xff0c;使用命令构建自行结束进程 解决&#xff1a;因为使用了node16.24&#xff0c;卸载重新安装14.17后解决 问题2、 21:31:11.483 Module build failed (from ./node_modules/vue/cli-service/node_module…

一、分页嵌套查询

情况说明,简化 现在要查询A表和B表的数据&#xff0c;A和B的关系是一对多&#xff0c;B中有A.ID 例&#xff1a; A&#xff08;ID,NAME,TYPE,CREATE_TIME&#xff09; B&#xff08;ID,A_ID,ONE,TWO&#xff09; 要求根据B.TWO为条件&#xff0c;模糊查询所有满足条件的数据 //…

从零开始搭建React+TypeScript+webpack开发环境-自定义配置化的模拟服务器

技术栈 我们将使用Node.js和Express.js作为我们的后端框架&#xff0c;以及Node.js的文件系统(fs)模块来操作文件和文件夹。此外&#xff0c;我们将使用Node.js的require和delete require.cache来加载和更新模拟数据。 项目结构 首先&#xff0c;让我们定义一个简单的项目结…

Modbus封装库(Com,tcp,udp一应俱全)

自行封装在用的Modbus通迅库,集成了com,tcp,udp, 做个笔记吧&#xff0c; 以下头文件&#xff0c; #pragma once #include <functional> #include <vector> #include <string> #include <memory> #ifdef LIBMODBUS_EXPORTS #define LIBMODBUS_EXPORT_…

重磅发布 OpenAI 推出用户自定义版 ChatGPT

文章目录 重磅发布 OpenAI 推出用户自定义版 ChatGPT个人简介 重磅发布 OpenAI 推出用户自定义版 ChatGPT OpenAI 首届开发者大会 (OpenAI DevDay) 于北京时间 11 月 7 日凌晨 02:00 开始&#xff0c;大会上宣布了一系列平台更新。其中一个重要更新是用户可以创建他们自己的自定…

从零开始的C++(十四)

继承&#xff1a; 作用&#xff1a;减少重复代码&#xff0c;简化程序。 用法&#xff1a; class b&#xff1a;public a {//...b中成员 } 在如上代码中&#xff0c;b类以public的方式继承了a类。规定a类是父类、基类&#xff0c;b类是子类、派生类。 关于继承方式&#xf…

Qt::WindowFlags

Qt::WindowFlags 文章目录 Qt::WindowFlags摘要窗口&部件Qt::WindowFlags&WindowType窗口类型窗口提示 关键字&#xff1a; Qt、 Qt::WindowFlags、 Qt::WindowType、 关键字4、 关键字5 摘要 今天在公司解决自己的Bugs的时候&#xff0c;发现一个以前可以用的功…

在Kotlin中设置User-Agent以模拟搜索引擎爬虫

前言 随着双十一电商活动的临近&#xff0c;电商平台成为了狂欢的中心。对于商家和消费者来说&#xff0c;了解市场趋势和竞争对手的信息至关重要。在这个数字时代&#xff0c;爬虫技术成为了获取电商数据的有力工具之一。本文将以亚马逊为例&#xff0c;介绍如何使用Kotlin编…

软件测试面试题【2023最新合集】

收集了各大公司的面试经验&#xff0c;现整理出来&#xff0c;希望能给正在找工作的志同道合的小伙伴一些指引&#xff0c;本文会持续更新的哦。 1、 CPU 和 GPU的区别 一个是通用计算&#xff0c;一个是专用计算。 CPU主要负责操作系统和应用程序&#xff0c;GPU主要负责跟…

针对图像分类的数据增强方法,离线增强,适合分类,无标签增强

针对图像分类的数据增强方法&#xff0c;离线增强&#xff0c;适合分类&#xff0c;无标签增强 代码&#xff1a; 改变路径即可使用 # 本代码主要提供一些针对图像分类的数据增强方法# 1、平移。在图像平面上对图像以一定方式进行平移。 # 2、翻转图像。沿着水平或者垂直方向…