富阳市建设局网站鲁文建筑服务网
web/
2025/10/3 19:39:34/
文章来源:
富阳市建设局网站,鲁文建筑服务网,怎么自己做个免费网站,app制作需要哪些技术本文结合PTA专项练习带领读者掌握数组#xff0c;刷题为主注释为辅#xff0c;在代码中理解思路#xff0c;其它不做过多叙述。 文章目录 7-1 计算最大值出现的次数7-2 求一批整数中出现最多的个位数字7-3 装箱问题7-4 数组-值钱的微信号7-5 数组-吹泡泡7-6 数组-数学鬼才 7… 本文结合PTA专项练习带领读者掌握数组刷题为主注释为辅在代码中理解思路其它不做过多叙述。 文章目录 7-1 计算最大值出现的次数7-2 求一批整数中出现最多的个位数字7-3 装箱问题7-4 数组-值钱的微信号7-5 数组-吹泡泡7-6 数组-数学鬼才 7-1 计算最大值出现的次数
计算一维数组中最大值出现的次数。 输入格式:
输入在一行n n1000代表数组的大小,在下一行中输入 n个整数为一维数组的元素。 输出格式:
输出最大值和出现的次数。 输入样例:
在这里给出一组输入。例如
4 4 2 2 4
输出样例:
在这里给出相应的输出。例如
4 2
#include stdio.h
int main()
{int n;scanf(%d,n);int a[n];for(int i0;in;i){scanf(%d,a[i]);}int maxa[0];int count0;for(int i0;in;i){if(a[i]max)maxa[i];}for(int i0;in;i){if(maxa[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
#includestdio.h
int main()
{int i, n;int a[1000];//储存输入的整数int b[10]{0};//记录每个个位数字出现的次数一开始均为0int t-1;//暂时存储每个整数的个位数字int max-1;//记录出现次数最多的个位数字的次数scanf(%d, n);for(i0;in;i){scanf(%d,a[i]);}for(i0;in;i)//遍历每个整数{do//用do while将每一位都取出{ta[i]%10;b[t]; //如果是3则b[3]的值加一a[i]a[i]/10;}while(a[i]!0);}//上一个循环结束后 b数组中储存的是每个数字对应的个数//现在找出出现次数最多的整数for(i0;i10;i){if(b[i]max){maxb[i];}}printf(%d:,max);for(i0;i10;i){if(maxb[i])//打印次数{printf( %d,i);}}return 0;
}7-3 装箱问题
假设有N项物品大小分别为s1、s2、…、si、…、sN其中si为满足1≤si≤100的整数。要把这些物品装入到容量为100的一批箱子序号1-N中。装箱方法是对每项物品, 顺序扫描箱子把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程并输出每个物品所在的箱子序号以及放置全部物品所需的箱子数目。 输入格式
输入第一行给出物品个数N≤1000第二行给出N个正整数si1≤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
#includestdio.h
int main()
{int n;scanf(%d,n);int a[1000]{0};int k1;//表示目前已使用的箱子数目for(int i0;in;i){int t;scanf(%d,t);//依次读入每个物品的大小for(int j0;jk;j){if(a[j]t100){a[j] t;printf(%d %d\n,t,j1);break;//从第一个箱子开始遍历若当前箱子能够容纳该物品则输出物品大小和箱子序号并跳出当前循环}if(jk-1){//如果遍历到最后一个箱子仍然无法容纳该物品则开一个新的箱子 输出物品大小和新的箱子序号a[k] t;k;printf(%d %d\n,t,k);break;}}}printf(%d,k);
}7-4 数组-值钱的微信号
总算到站了。尽管阿翔还是没有解锁出钥匙。但是who cares听说会有学姐在火车站口迎接学弟这才是当下最重要的事情啊阿翔屁颠屁颠地跑向站口……
“胡大的同学请到这里来。”然而并没有学姐。阿翔看着这一个个英俊潇洒的帅比学长失望极了。这时他注意到了旁边的那支队伍怎么那么多学姐她们右肩扛着学弟的行李左肩扛着大旗旗上还绣着fjnu。阿翔暗想他要加入那支队伍不然至少也得要几个微信号。忽然他觉得身后传来阵阵杀气扭头一看学长们的眼里道道寒光裹挟着邪魅。阿翔咽了咽口水他知道为了革命吃点苦是在所难免的了——
阿翔的钱包里共有K枚金币。这里有N个学长每贿赂一个学长i阿翔就能获得一个学姐的微信号但是要消耗Bi枚金币。阿翔想在钱包还没被掏空的情况下得到尽可能多的微信号注钱包里的钱是一定不能花光的至少也得给自己留一枚金币嘛人生最大的悲剧莫过于积了一页的微信号却没钱买流量问阿翔最多能要到多少个微信号 输入格式:
第一行为两个正整数 K0 K 100 和 N0 N 50表示阿翔共有K枚金币这里共有N个学长。
第二行有N个整数Bi0 Bi 100表示贿赂第i个学长所需要消耗的金币数。
相邻两个整数间用空格隔开。 输出格式:
输出仅一行即阿翔所能得到的最多的微信号数目。 输入样例:
20 10 10 9 8 7 6 5 4 3 2 1
输出样例:
5
#include stdio.hint main()
{int k,n;scanf(%d%d,k,n);long long int a[n];for(int i0;in;i){scanf(%lli,a[i]);}for(int i0;in-1;i){for(int j0;jn-1-i;j){if(a[j]a[j1]){int ta[j];a[j]a[j1];a[j1]t;}}}int sum0;for (int i0;in;i){suma[i];if(sumk){printf(%d,i);break;}if(in-1sumk)//最后一位学长{printf(%d,n);}}return 0;
}7-5 数组-吹泡泡
Shc特别喜欢吹泡泡他现在已经吹出了N个泡泡根据他多年吹泡泡的经验他很快就目测出了每个泡泡的半径(能精确到小数点后一位)。但是他的数学特别的差。 现在他想知道每个泡泡的体积大小。因为shc吹泡泡的技术高超所以每个泡泡都是绝对的球体。你能帮助他求出每个泡泡的体积大小并且从大到小输出吗并且在输出体积的同时也请输出这个泡泡是shc吹的第几个泡泡。 输入格式:
第一行为一个正整数N0 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 i0;in;i){scanf(%lf,a[i]);}for(int i0;in;i){a[i]1.33*3.14*a[i]*a[i]*a[i];//编号为1、2、3...的泡泡体积b[i]i1;}//使用冒泡排序按照体积降序排序同时保持编号顺序不变for(int i0;in-1;i){for(int j0;jn-i-1;j){if(a[j]a[j1]){double ta[j];a[j]a[j1];a[j1]t;int sb[j];b[j]b[j1];b[j1]s;}}}for(int i0;in;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。但是他发现看他表演的只有学弟没有迷妹所以他决定把这个任务交给你。 输入格式:
第一行输入一个正整数Q0Q100),表示Q次询问。
接下来Q行每行一个N0 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,sum1;scanf(%d,q);for(int i1;i2018;i){sum(sum*i)%2018;}//先计算2018的阶乘并对其取余 为后面做铺垫for(int i1;iq;i){long long int n;scanf(%lli,n);int t1;if(n2018)//如果输入的数大于2018,则将大数拆分为2018的倍数和余数{int sn/2018;n%2018;t(t*(int)pow(sum,s))%2018;}for(int i1;in;i){t(t*i)%2018;}printf(%d\n,t);}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86384.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!