![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PTA
在PTA写的
AQACXHSH
菜鸟一枚 。
展开
-
# 6-4 链式表的按序号查找 (10 分)
本题要求实现一个函数,找到并返回链式表的第K个元素。函数接口定义:ElementType FindKth( List L, int K );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode {ElementType Data;PtrToLNode Next;};typedef PtrToLNode List;L是给定单链表,函数FindKth要返回链式表的第K个元素。如果该元素不存在,则返回ERROR。裁判测试原创 2021-10-28 21:48:30 · 227 阅读 · 0 评论 -
6-3 求链式表的表长 (10 分)
本题要求实现一个函数,求链式表的表长。函数接口定义:int Length( List L );其中List结构定义如下:typedef struct LNode *PtrToLNode; struct LNode {ElementType Data;PtrToLNode Next; }; typedef PtrToLNode List;L是给定单链表,函数Length要返回链式表的长度。裁判测试程序样例:#include <stdio.h>#include <原创 2021-10-28 21:35:30 · 208 阅读 · 0 评论 -
6-2 人口统计 (5 分)java
6-2 人口统计 (5 分)本题运行时要求键盘输入10个人员的信息(每一个人信息包括:姓名,性别,年龄,民族),要求同学实现一个函数,统计民族是“汉族”的人数。函数接口定义:public static int numofHan(String data[])其中 data[] 是传入的参数。 data[]中的每一个元素都是一个完整的人员信息字符串,该字符串由“姓名,性别,年龄,民族”,各项之间用英文半角的逗号分隔。函数须返回 值是汉族的人数。裁判测试程序样例:import java.util.原创 2021-04-26 21:00:32 · 3233 阅读 · 1 评论 -
7-3 数组元素的删除 (10 分) Java实现
7-3 数组元素的删除 (10 分)完成数组元素的移动功能:假设数组有n个元素,输入一个数x,把数组的第x个位置的元素删除了,后面的元素依次前进一个位置。 重复若干次这样的删除,得到最后的结果。输入格式:第一行包括一个整数n(1<=n<=100),表示数组元素的个数。 第二行输入n个数组元素,均为整数,用空格隔开。 第三行输入一个数k(1<=k<=100),表示要进行k次删除。 接下来k行,每行一个数x,表示要删除第x个元素。输出格式:输出经过k次删除后的数组,每两个元素之原创 2021-04-15 00:49:05 · 2072 阅读 · 0 评论 -
L2-4 简单计算器 (25 分) C实现
本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器。如上图所示,计算器由两个堆栈组成,一个堆栈 S1存放数字,另一个堆栈 S2存放运算符。计算器的最下方有一个等号键,每次按下这个键,计算器就执行以下操作:#include <stdio.h>int main (){ int n; scanf("%d" , &n); int a[n]; int i; for(i=0 ; i<n ; i++){ scanf.原创 2021-04-15 00:39:50 · 669 阅读 · 0 评论 -
计算最长的字符串长度(C实现)
习题11-3计算最长的字符串长度(15分)本题要求实现一个函数,用于计算有n个元素的指针数组s中最长的字符串的长度。函数接口定义:int max_len( char *s[], int n );其中n个字符串存储在s[]中,函数max_len应返回其中最长字符串的长度。裁判测试程序样例:#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXN 10#d..原创 2021-01-10 20:20:27 · 612 阅读 · 0 评论 -
6-1 水仙花数判断 (10分)(函数题)
6-1 水仙花数判断 (10分)本题要求实现一个函数,判断任一整数是否为水仙花数(必须是三位数,且数的每一位上数字的立方和与数本身相等)。例如153=13+53+3^3=1+125+27=153,而1或155则不是水仙花数。如果是水仙花数,则函数返回1,否则返回0.函数接口定义:int func(const int N);其中N是用户传入的参数。N的值不超过int类型的范围。如果参数N是水仙花数,则返回1,否则返回0。裁判测试程序样例:#include <stdio.h>in原创 2021-01-09 18:14:07 · 4476 阅读 · 0 评论 -
输出数组元素(C实现)
7-27 输出数组元素本题要求编写程序,对顺序读入的n个整数,顺次计算后项减前项之差,并按每行三个元素的格式输出结果。输入格式:输入的第一行给出正整数n(1<n≤10)。随后一行给出n个整数,其间以空格分隔。输出格式:顺次计算后项减前项之差,并按每行三个元素的格式输出结果。数字间空一格,行末不得有多余空格。输入样例:105 1 7 14 6 36 4 28 50 100输出样例:-4 6 7-8 30 -3224 22 50#include <stdio.h&g原创 2021-03-22 19:12:50 · 495 阅读 · 0 评论 -
输出单词的首字符
输出单词的首字符本题目要求编写程序,输入一行字符,将每个单词的首字符输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。输入格式:输入给出一行字符。输出格式:在一行中输出单词的首字符。中间没有空格。输入样例:How are you?输出样例:Hay#include <stdio.h>#include <math.h>#include<string.h>#define N 10000//方便该数组大小int原创 2021-03-22 19:12:38 · 1800 阅读 · 4 评论 -
输出所有大于平均值的数
7-56 输出所有大于平均值的数本题要求编写程序,将输入的n个整数存入数组a中,然后计算这些数的平均值,再输出所有大于平均值的数。输入格式:输入在第1行中给出一个正整数n(1≤n≤10),第2行输入n个整数,其间以空格分隔。题目保证数据不超过长整型整数的范围。输出格式:输出在第1行给出平均值,保留2位小数。在第2行输出所有大于平均值的数,每个数的后面有一个空格;如果没有满足条件的数,则输出空行。如果输入的n不在有效范围内,则在一行中输出"Invalid."。输入样例1:1055 23 8原创 2021-01-07 19:23:00 · 2263 阅读 · 0 评论 -
输出2到n之间的全部素数
7-53 输出2到n之间的全部素数本题要求输出2到n之间的全部素数,每行输出10个。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。输入格式:输入在一行中给出一个长整型范围内的整数。输出格式:输出素数,每个数占6位,每行输出10个。如果最后一行输出的素数个数不到10个,也需要换行。输入样例:10输出样例: 2 3 5 7#include <stdio.h>#include <math.h>int flg原创 2021-01-07 19:11:53 · 2708 阅读 · 0 评论 -
7-3 找出不是两个数组共有的元素 (10分)
7-3 找出不是两个数组共有的元素 (10分)给定两个整型数组,本题要求找出不是两者共有的元素。输入格式:输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。输出格式:在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。输入样例:10 3 -5 2 8 0 3 5 -15 9 10011 6 4 8 2 6 -5 9 0 100 8 1输出样例:原创 2021-01-07 16:43:26 · 601 阅读 · 0 评论 -
6-5 报数 (10分)
6-5 报数 (10分)报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。本题要求编写函数,给出每个人的退出顺序编号。函数接口定义:void CountOff( int n, int m, int out[] );其中n是初始人数;m是游戏规定的退出位次(保证为小于n的正整数)。函数CountOff将每个人的退出顺序编号存在数组out[]中。因为C语言数组下标是原创 2021-01-06 21:28:57 · 1306 阅读 · 0 评论 -
7-5 求矩阵的局部极大值 (10分)
7-5 求矩阵的局部极大值 (10分)给定M行N列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的局部极大值。本题要求给定矩阵的全部局部极大值及其所在的位置。输入格式:输入在第一行中给出矩阵A的行数M和列数N(3≤M,N≤20);最后M行,每行给出A在该行的N个元素的值。数字间以空格分隔。输出格式:每行按照“元素值 行号 列号”的格式输出一个局部极大值,其中行、列编号从1开始。要求按照行号递增输出;若同行有超过1个局部极大值,则该行按列号原创 2021-01-05 16:44:27 · 439 阅读 · 0 评论 -
7-86 小明的晚饭 (50分)
7-86 小明的晚饭 (50分)小明最近很用功学习,所以经常忘记吃饭。小明决定给自己放个假去大吃一顿,到了吃饭的地方后,小明陷入了沉思,因为他很纠结不知道吃什么,所以他全都要。小明的食量是无限的并且是个贪心的人,所以他想吃完自己支付范围内所有最贵的饭。他从最贵的饭店开始吃,若剩下的钱不足以吃当前最贵的饭店,则往下寻找较贵的饭店。直到钱财为空或者已经吃不起最便宜的饭了。当然小明是个有原则的人,他绝对不会重复吃已经吃过的餐厅。但是他学完习思考不出来该吃啥了,需要你的帮助 (Hint:小明不做其他选择,只要贵的原创 2020-12-29 18:32:39 · 2377 阅读 · 1 评论 -
龟兔赛跑 (10分)
7-6 龟兔赛跑 (10分)乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?输入格式:输入在一行中给出比赛时间T(分钟)。输出格式:在一行中输出比赛的结果:乌龟赢输出@@,兔子赢输出_,平局则原创 2020-12-29 16:45:58 · 150 阅读 · 0 评论 -
男生女生(C语言)
7-3 男生女生 (10分)###任务描述 给定一个班每个同学的性别,分别输出男女比例,男生学号和女生学号。 ###输入 第一行一个整数n,0<n≤500表示班级人数。第二行中有n个0(女生)或者1(男生),表示按学号(从1号开始)顺序的每个同学性别。 ###输出 第一行输出男生与女生的比例,形式为1:?。如果男女生相等,则输出1:1;如果没有男生输出性别为0:1;如果没有女生,性别比输出1:0,否则输出1:?,结果保留2位小数。 第二行从小到大输出男生的学号,学号之间用空格分隔,行首和行尾不能有空原创 2021-01-21 12:54:56 · 6159 阅读 · 0 评论 -
大于m的最小素数
7-3 大于m的最小素数 (10分)编程求出大于m的最小素数。输入格式:直接输入一个正整数输出格式:直接输出结果,没有任何附加格式控制。输入样例:12输出样例:13`#include <stdio.h>#include <math.h>int IsPrime(int m);int main(){ int m,i; scanf("%d",&m); for(i=m+1;i<999999;i++){ if(IsPrime(i))原创 2020-12-29 15:36:12 · 4855 阅读 · 0 评论 -
单词首字母大写 (5分)
7-1 单词首字母大写 (5分)本题目要求编写程序,输入一行字符,将每个单词的首字母改为大写后输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。输入格式:输入给出一行字符。输出格式:在一行中输出已输入的字符,其中所有单词的首字母已改为大写。输入样例:How are you?输出样例:How Are You?#include <stdio.h>#include<string.h>int main(){ char a[1原创 2020-12-29 15:23:49 · 8170 阅读 · 2 评论 -
帅到没朋友 (20分)
#帅到没朋友 (20分)当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。输入格式:输入第一行给出一个正整数N(≤100),是已知朋友圈的个数;随后N行,每行首先给出一个正整数K(≤1000),为朋友圈中的人数,然后列出一个朋友圈内的所有人——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔;之后给出一个正整数M(≤10000),为待查询的人数;随后一行中列出M个待查询的ID,以空格分隔。注意:没有朋友的原创 2020-12-29 15:07:41 · 780 阅读 · 0 评论 -
7-7 图像抽丝 (10分)
7-7 图像抽丝 (10分)###任务描述 有一幅有m×m像素的图像,0<m≤1000在某图像处理中需要提取该图像中的某行、列、主对角线或副对角线上的元素,请编程实现按要求提取像素的操作。 ###输入 第一行有1个整数m,其后的m行每行m个表示像素值的整数。接下来的第一行有一个正整数表示提取像素操作次数k。其后的k行,每行有以下四种情况: (1)-1 n 表示提取图像的第n行像素。行从1开始由上往下依次编号。 (2)1 n 表示提取图像的第n列像素。列从1开始由左往右依次编号。 (3)-2 表示提取原创 2020-12-29 16:43:45 · 299 阅读 · 0 评论 -
7-3 验证“哥德巴赫猜想” (10分)
7-3 验证“哥德巴赫猜想” (10分)数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。输入格式:输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。输出格式:在一行中按照格式“N = p + q”输出N的素数分解,其中p ≤ q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的原创 2021-01-05 15:44:31 · 1409 阅读 · 0 评论 -
6-1 字符串的连接 (10分)(函数)
6-1 字符串的连接 (10分)本题要求实现一个函数,将两个字符串连接起来。函数接口定义:char *str_cat( char *s, char *t );函数str_cat应将字符串t复制到字符串s的末端,并且返回字符串s的首地址。裁判测试程序样例:#include <stdio.h>#include <string.h>#define MAXS 10char *str_cat( char *s, char *t );int main(){char原创 2021-01-04 20:36:20 · 2064 阅读 · 0 评论 -
7-3 寻找202最帅 (10分)
7-3 寻找202最帅 (10分)202宿舍有六位同学,他们对自己的颜值都无比自信,这是个没有结果的争论,正好前几天刚考完试,所以他们想以这次考试的成绩来找出202最帅的。你知道他们的规则和成绩,要求你用代码给出他们答案。规则:班主任规定的优秀成绩为n分,如果6位同学的成绩全都超过优秀成绩,请输出“202 zui shuai”,如果6位同学的成绩全都低于优秀成绩,请输出“come on!”,如果6位同学的成绩有可能有高于优秀成绩的,有可能有低于优秀成绩的,有可能有等于优秀成绩的,请先输出“zui shu原创 2021-01-03 20:28:43 · 634 阅读 · 0 评论 -
6-3 结构体的最值 (5分)##C语言
6-3 结构体的最值 (5分)学生类型ST的定义如下:typedef struct student{ char name[10],id[10]; int gender; int age; double scored; } ST;编写函数,返回指定学生数组中的男生或女生的最高分的地址(约定:整数0和1分别代表男和女)。函数接口定义:ST* MaxST(ST d[],int n,int k);//k=0|1其中 d 是学生数组的初地址, n是数组的长度, k 是查找的性别描述(值确保是0或1原创 2021-01-02 14:18:04 · 6314 阅读 · 0 评论 -
7-3 出生年 (15分)
7-3 出生年 (15分)以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。输入格式:输入在一行中给出出生年份y和目标年份中不同数字的个数n,其中y在[1, 3000]之间,n可以是2、或3、或4。注意不足4位的年份要在前面补零,例如公元1年被认为是0001年,有2个不同的数字0和1。输出格式:根据输入,输出x和原创 2020-12-30 22:48:38 · 675 阅读 · 0 评论 -
7-92 爬旗杆 (15分)
7-92 爬旗杆 (15分)小C从小很调皮, 调皮的小孩聪明啊。小C的小学有一根金属旗杆, 每天做早操前,小朋友们都要举行升国旗仪式,小C每次看到国旗徐徐上升,边唱国歌、边敬礼、边发呆。一天小C突然想爬到旗杆顶,有想法就要付诸行动。已知旗杆n米高,小C爬行速度为x米/秒,因为旗杆很滑,爬行很费力,小C体力有限,所以每过t秒,要休息2秒, 也因为旗杆滑,不爬行时,小C会从旗杆上滑下来,下滑的速度为y米/秒。输入格式:多组测试数据, 每行输入4个整数n x y t。 (1<=n,x,t,y<=原创 2020-12-30 22:47:36 · 283 阅读 · 0 评论 -
7-57 前天是哪天 (10分)
7-57 前天是哪天 (10分)给定公元1000年到公元3000年之间的某一天,请你给出该天的前天是哪一天。输入格式:输入在一个日期,格式如"yyyy-mm-dd",题目保证所有输入日期为合法日期。输出格式:对每一组输入,在一行中输出日期,格式如"yyyy-mm-dd"。输入样例:在这里给出一组输入。例如:2020-3-15输出样例:在这里给出相应的输出。例如:2020-3-13#include <stdio.h>#include <stdlib.h>原创 2020-12-30 22:34:15 · 1799 阅读 · 1 评论 -
6-3 移动字母 (10分)
6-3 移动字母 (10分)本题要求编写函数,将输入字符串的前3个字符移到最后。函数接口定义:void Shift( char s[] );其中char s[]是用户传入的字符串,题目保证其长度不小于3;函数Shift须将按照要求变换后的字符串仍然存在s[]里。裁判测试程序样例:#include <stdio.h>#include <string.h>#define MAXS 10void Shift( char s[] );void GetString(原创 2020-12-30 17:52:59 · 1522 阅读 · 0 评论 -
7-5 井字棋 (15分)
7-5 井字棋 (15分)大佬和小白玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。输入格式:三行三列的字符元素,代表棋盘状态,字符元素用空格分开,代表当前棋盘,其中元素为D代表大佬玩家的棋子,为O表示没有棋子,为X代表小白玩家的棋子。输出格式:如果大佬获胜,输出“姜还是老的辣!”; 如果小白获胜,输出“长江后浪推前浪!”; 如果没有获胜,输出“再来一局!”。输入样例:D O XO D XX O D输原创 2020-12-30 00:50:44 · 2155 阅读 · 0 评论 -
7-5 前世档案 (8分)#C
7-5 前世档案 (8分)网络世界中时常会遇到这类滑稽的算命小程序,实现原理很简单,随便设计几个问题,根据玩家对每个问题的回答选择一条判断树中的路径(如下图所示),结论就是路径终点对应的那个结点。现在我们把结论从左到右顺序编号,编号从 1 开始。这里假设回答都是简单的“是”或“否”,又假设回答“是”对应向左的路径,回答“否”对应向右的路径。给定玩家的一系列回答,请你返回其得到的结论的编号。输入格式:输入第一行给出两个正整数:N(≤30)为玩家做一次测试要回答的问题数量;M(≤100)为玩家人数。原创 2020-12-30 00:50:04 · 1065 阅读 · 0 评论 -
7-70 九万行 (10分)
7-70 九万行 (10分)为了找出坊间最擅长敲代码的那个男人,程序员界发起了一场投票。而现在采集到了n位程序员的投票结果,请你找出得票最多的序员获得的票数。输入格式第一行一个数n(1≤n≤100),代表有多少位程序员投票。第二行n个数:a1 ,a2 ⋯an,ai(1≤ai ≤100)代表第i位程序员投票的坊间最擅长敲代码的那个男人。输出格式一行一个数,得票最多的坊间最擅长敲代码的那个男人获得的票数。输入样例61 2 4 3 3 2输出样例2#include原创 2020-12-30 00:49:33 · 515 阅读 · 0 评论 -
7-14 九九乘法表(右上三角样式) (10分)
7-14 九九乘法表(右上三角样式) (10分)###任务描述 九九乘法表是同学们小学数学中学过的知识了。九九乘法表从11,一直到99的所有乘法,因为乘法满足交换律,也为了朗朗上口便于记忆,要求乘号前的数字小于等于乘号后的数字。因此,输出的结果为三角形式。 本题中的输出要求,也不一定从11到99,可以诸如从22到88,55到66,等等形式。 现在需要你编写程序,按右上角样式,输出指定区间按指定形式输出乘法表。 ###输入 第一行有一个整数k(1≤k≤100)表示测试用例的个数。其后的k行每行包含一个测试用原创 2021-01-03 20:14:20 · 4769 阅读 · 0 评论 -
7-6 鸡群的怜悯 (10分)
7-6 鸡群的怜悯 (10分)有一只公鸡年老色衰,体力也大不如前。为了保持配种的成功率,农夫买回一只小公鸡,丢在了鸡窝里面。俗话讲一山不容二虎,没想到一窝不容二鸡。小公鸡去了以后,可以说是卖力的表演,使尽了浑身的解数,吸引了所有的母鸡的注意,老公鸡觉得地位不保,很是担心。于是他提出跟新来的小公鸡举行一场赛跑:赢的留下,输的自动离开。第二天早上,两只鸡来到了起跑线上,随着一只母鸡的发令枪响两只鸡如同离弦之箭冲出跑道,拼命的往前跑。老公鸡刚开始还遥遥领先,后来体力渐渐不行了,慢慢被小公鸡赶了上来,就在这个小公原创 2020-12-30 00:48:34 · 353 阅读 · 0 评论 -
晨阳哥哥之世界末日 (15分)
7-88 晨阳哥哥之世界末日 (15分)这个,发生了大爆炸,结果整个世界都进入了末日,你由于辐射变成了一只丧尸,当然因为大爆炸,满地都是碎裂的肉块,而你因为太过虚弱,只能爬一次而且只能爬30秒去找肉吃,现在,乘着你的脑子还没有完全失去,想想如何才能找到更大的肉吃。输入格式:测试数据有多组,处理到文件尾。每组输入一个不多于30的正整数N,然后接着是N组数据,M,T,分别代表肉的大小和找到这块肉的时间。输出格式:每组输出在30秒内,所能找到的最大的肉,如果一块肉都找不到,就输出“GG”,找到的话,输出原创 2020-12-29 18:25:04 · 406 阅读 · 0 评论