![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
以PTA上各类题型为主
小白兔奶糖ovo
承载了太多期许的目光,怎敢轻易辜负!
展开
-
单词表的排序
时间限制: 1 Sec 内存限制: 256 MB题目描述请将文本文件word.dic下载保存到当前目录下,要求编写C程序,对word.dic中的单词排序,并将排序结果显示在屏幕上。特别注意,排序时忽略大小写,详见样例数据。输入实际的测试文件word.dic不超过3000行,每行包含一个单词(或词组),每个单词的左侧没有空格之类的多余符号,每个单词(或词组)的总长度不超过30。输出输出排序后的单词(或词组),每个单词(或词组)占1行。样例输入例如,word.dic的内..原创 2021-06-28 11:50:28 · 274 阅读 · 0 评论 -
PTA 二分查找 (20 分)
本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */};L是用户传入的一个线性表,其中ElementTyp.原创 2021-12-03 10:48:48 · 1416 阅读 · 0 评论 -
PTA 二叉树的遍历(简单) (10 分)
二叉树作为FDS课程最核心的数据结构之一,要求每个人都掌握!这是一道简单的二叉树问题!我们将给出一颗二叉树,请你输出它的三种遍历,分别是先序遍历,中序遍历,后序遍历!输入格式:二叉树将以这样的形式给出:第一行给出一个正整数N(N<=100),表示二叉树上的节点个数 !接下来N行,每行包含三个整数,i,l,r,分别代表第i个节点的左右孩子!如果它的左/右孩子为空,则在对应位置给出-1 !题目保证1是根节点!输出格式:请你输出它的三种遍历!..原创 2021-12-01 09:15:06 · 1330 阅读 · 0 评论 -
习题3.3 线性表元素的区间删除 (20 分)
给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。函数接口定义:List Delete( List L, ElementType minD, ElementType maxD );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; .原创 2021-11-28 19:48:47 · 674 阅读 · 1 评论 -
*进阶实验2-3.4 素因子分解 (20 分)
WA:#include <bits/stdc++.h>using namespace std;int isprime(int x){ if(x == 1) return 0; if(x == 2) return 1; for (int i = 2; i <= sqrt(x);i++) { if(x % i == 0) return 0; } return 1..原创 2021-11-27 11:04:17 · 343 阅读 · 0 评论 -
基础实验2-2.4 装箱问题 (20 分)
假设有N项物品,大小分别为要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。输入格式:输入第一行给出物品个数N(≤1000);第二行给出N个正整数输出格式:按照输入顺序输出每个物品的大小及其所在的箱子序号,每个物品占1行,最后一行输出所需的箱子数目。输入样例:860 70 80 90 30 40 1.原创 2021-11-17 20:53:32 · 125 阅读 · 0 评论 -
* 基础实验2-2.3 组合数的和 (15 分)
给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。输入格式:输入在一行中先给出 N(1 < N < 10),随后给出 N 个不同的非 0 个位数字。数字间以空格分隔。输出格式:输出所有可能组合出来的2位数字的和。输入样例:3 2 8 5结尾无空行输出样例:330结尾无空行new 思路:.原创 2021-11-15 10:10:21 · 444 阅读 · 0 评论 -
基础实验2-2.2 求集合数据的均方差 (15 分)
输入格式:输入首先在第一行给出一个正整数 N(≤10^4),随后一行给出 N 个正整数。所有数字都不超过 1000,同行数字以空格分隔。输出格式:输出这N个数的均方差,要求固定精度输出小数点后5位。输入样例 1:106 3 7 1 4 8 2 9 11 5结尾无空行输出样例 1:3.03974结尾无空行输入样例 2:12结尾无空行输出样例 2:0.00000结尾无空行AC:#include <stdio.h>#include <s.原创 2021-11-15 09:33:52 · 925 阅读 · 0 评论 -
较大的整数阶乘
思路:考虑将多位数相乘化解为一位数相乘。例如,11 的阶乘为 39916800,若需要求 12 的阶乘,则需要将 39916800 与 12 相乘,按手工计算乘法的竖式方法,可用 2 与 39916800 相乘的结果加上用 1 与 39916800 相乘的结果,然后再将结果相加,得到 12 的阶乘。AC:#include <stdio.h>#include <math.h>#include <stdlib.h>void carry(int bit[原创 2021-09-12 14:26:18 · 409 阅读 · 0 评论 -
孪生素数——C语言实现
孪生素数之间隔为2的相邻素数,它们之间的距离已经近得不能再近了,就像孪生兄弟一样,也称为双生素数。中国剩余定理有个孪生素数的公式,在此就不介绍了。感兴趣的请自行某度。AC:#include <stdio.h>#define maxn 10000int main() { long i, j, c = 0; long twin = 2, t = 0; char prime[maxn + 1]; prime[0] = 0; prime[1原创 2021-09-12 08:35:24 · 6559 阅读 · 0 评论 -
学生成绩录入及查询 (15 分)
学生成绩表中,一名学生的信息包含如下信息: 学号(11位)、姓名、数学成绩、英语成绩、程序设计成绩、物理成绩。本题要求编写程序,录入N条学生的信息,并且按查询要求显示学生成绩等信息。输入格式:输入在第一行给出正整数N(N<=10);随后N行,每行按格式:学号 姓名 数学成绩 英语成绩 程序设计成绩 物理成绩给出一名学生的信息。 其中学号是11位数字;姓名是不超过10个字符、不包含空格的非空字符串;成绩是<=100的非负整数;在学生信息输入完成后,给出要查询的姓名。原创 2021-09-10 08:51:15 · 1664 阅读 · 0 评论 -
编写函数实现A∩B的集合运算 (10 分)
设A、B、C是三个整数集合,每个集合中的元素数均在100以内。这里要求编写一个函数来实现A∩B的集合运算,运算结果存放在集合C中.函数接口定义:void Intersection(int *A,int *B,int*C,int Asize,int Bsize,int *Csize);在接口参数中A,B和C是指向三个集合的指针,指针C指向交集,Asize,Bsize和Csize分别表示集合A,B和C中的元素数,但是Csize是一个指针类型的变量。裁判测试程序样例:在这里给出函数被调用进行测原创 2021-09-10 08:44:56 · 4991 阅读 · 1 评论 -
哥德巴赫猜想
哥德巴赫猜想:任一大于2的偶数,都可表示成两个素数之和。---------------------------------验证---------------------------------------2000以内大于2的偶数都能够分解为两个素数之和。分析为了验证哥德巴赫猜想对2000 以内大于2的偶数都是成立的,要将整数分解为两部分(两个整数之和),然后判断分解出的两个整数是否均为素数。若是,则满足题意;否则重新进行分解和判断。素数测试的算法可采用试除法,即用2,3,4,…,√n 去除n,如果原创 2021-09-04 09:57:50 · 631 阅读 · 0 评论 -
Fibonacci 斐波那契数列(3种方法)
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。样例输入10样例输出55样例输入22样例输出77041 <= n <= 1,000,000。————————————————#include <iostream>#include <algorithm>#include <cstdio>#includ原创 2021-09-03 21:52:11 · 523 阅读 · 0 评论 -
C++ 补充
标准输入流cin>>x;读入整型数时,以第一个非数字为终结读入字符串时,以第一个空格,Tab 或换行符为终结cin.getline(str,len,ch);//读入一个字符串,ch 被从流中提出,但不存入 strch=cin.get();//读入一个单独的字符cin.ignore(len,ch);//忽略一串字符,ch 同上...原创 2021-08-30 15:28:34 · 120 阅读 · 0 评论 -
存储容量 (10分)
在计算机的存储系统中,最基本的存储单位是字节(Byte,简写为B),例如:存储名词ZheJiang,会占用8个字节(即:8B),而存储学号2019019999,会占用10个字节(即:10B)当存储容量较大时,为了描述方便,也可以使用更大的存储单位,如:千字节(Kilobyte,简写为KB或K)、兆字节(Megabyte,简写为MB或M)其中,1K=210B=1024B,即:1024个字节 1M=210K=1024K=1024×1024B=1048576B,即:1048576个字节要求:根.原创 2021-07-01 14:40:24 · 229 阅读 · 0 评论 -
判断一个正整数是否为素数
时间限制: 1 Sec 内存限制: 128 MB题目描述对于正整数N(N<1000000),如果N只能被1和N整除,则N为素数(质数),否则N为合数。例如:自然数7,只能被7(它自己)和1整除,所以7是素数。又如,自然数6,可以被1、2、3、6整除,所以6不是素数。输入输入一个正整数N(N<1000000)样例输入273119样例输出YesYesNo【Solution】#include<stdio.h>int main(){ .原创 2021-06-29 15:27:14 · 3145 阅读 · 0 评论 -
完全数(Perfect Number)
时间限制: 1 Sec 内存限制: 128 MB题目描述完全数,又称完数、完美数或完备数,是一些特殊的自然数:它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。例如:自然数6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6 又如自然数28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4 + 7 + 14=28所以,6和28是完全数。此外,还有496、8128也是完全数。而对于自然数16,除去它本身16外,其余的约数相.原创 2021-06-29 14:57:11 · 9082 阅读 · 1 评论 -
大写字母组成的等腰三角形
时间限制: 1 Sec 内存限制: 128 MB题目描述输入正整数N(1≤N≤26),输出大写字母组成的等腰三角形(N行) A BBB CCCCC样例输入5样例输出 A BBB CCCCC DDDDDDDEEEEEEEEE【Solution】BGM#include <stdio.h>#include <stdlib.h>#include <string.h>int main(int argc,..原创 2021-06-27 14:48:25 · 3638 阅读 · 0 评论 -
计算组合数C(A,B)
时间限制: 1 Sec 内存限制: 128 MB题目描述输入正整数A,B(0≤B≤A≤20),计算组合数。输入:测试数据只有1组。输出::每个输出占1行。样例输入0 01 14 25 310 615 9样例输出116102105005【Solution】#include <stdio.h>long long int jc(int x);int main(int argc, char *argv[]){ in.原创 2021-06-27 11:32:33 · 450 阅读 · 0 评论 -
递归实现求最大公约数
辗转相除法辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求两个正整数之最大公约数的算法。它是已知最古老的算法, 其可追溯至公元前300年前。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。另一种求两数的最大公约数的方法是更相减损法。来源:设两数为a、b(a>b),求a和b最大公约数(a,b)的步原创 2021-08-19 16:09:57 · 10607 阅读 · 2 评论 -
PTA 螺旋方阵 (20 分) 【Leetcode】59.螺旋矩阵II
所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。输入格式:输入在一行中给出一个正整数N(<10)。输出格式:输出N×N的螺旋方阵。每行N个数字,每个数字占3位。输入样例:5结尾无空行!输出样例: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 结尾无空行!AC原创 2021-08-17 15:53:12 · 238 阅读 · 0 评论 -
PTA 计算平均成绩 (15 分)
给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和成绩([0,100]区间内的整数),要求计算他们的平均成绩,并顺序输出平均线以下的学生名单。输入格式:输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩”,中间以空格分隔。输出格式:首先在一行中输出平均成绩,保留2位小数。然后按照输入顺序,每行输出一位平均线以下的学生的姓名和学号,间隔一个空格。输入样例:500001 zhang原创 2021-08-18 10:35:22 · 1275 阅读 · 0 评论 -
PTA 数字金字塔 (15 分)
本题要求实现函数输出n行数字金字塔。函数接口定义:void pyramid( int n );其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注意每个数字后面跟一个空格。裁判测试程序样例:#include <stdio.h>void pyramid( int n );int main(){ int n; scanf("%d", &n); pyramid(n); .原创 2021-07-13 11:16:16 · 572 阅读 · 0 评论 -
PTA 找出最小值 (20 分)
代码长度限制 16 KB时间限制 400 ms内存限制 64 MB本题要求编写程序,找出给定一系列整数中的最小值。输入格式:输入在一行中首先给出一个正整数n,之后是n个整数,其间以空格分隔。输出格式:在一行中按照“min = 最小值”的格式输出n个整数中的最小值。输入样例:4 -2 -123 100 0输出样例:min = -123【Solution】采用了数组的方法#include <stdio.h>#include <stri.原创 2021-06-27 16:21:53 · 2971 阅读 · 3 评论 -
PTA 删除字符 (20 分)
本题要求实现一个删除字符串中的指定字符的简单函数。函数接口定义:void delchar( char *str, char c );其中char *str是传入的字符串,c是待删除的字符。函数delchar的功能是将字符串str中出现的所有c字符删除。裁判测试程序样例:#include <stdio.h>#define MAXN 20void delchar( char *str, char c ); void ReadString( char s[] ){ .原创 2021-06-26 18:08:53 · 12315 阅读 · 7 评论 -
PTA 使用函数实现字符串部分复制 (20 分)
本题要求编写函数,将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。函数接口定义:void strmcpy( char *t, int m, char *s );函数strmcpy将输入字符串char *t中从第m个字符开始的全部字符复制到字符串char*s中。若m超过输入字符串的长度,则结果字符串应为空串。裁判测试程序样例:#include <stdio.h>#define MAXN 20void strmcpy( char *t, int m, ..原创 2021-06-26 13:40:45 · 3245 阅读 · 1 评论 -
【递归】Hanoi 塔问题
Hanoi 塔问题起源于印度神话:传说在世界中心贝拿勒斯的神庙里,一个黄铜板上插着3根金刚石柱子。印度教的主神梵天在创造世界的时候,在其中一根柱子上从下到上穿好了由大到小的64个黄金圆盘,这就是所谓的 Hanoi 塔。不论白天和黑夜,总有一个僧侣在按照下面的法则移动这些圆盘:一次只移动一个圆盘,不管在哪根柱子上,小圆盘必须在大圆盘的上面。僧侣们预言:当所有的圆盘从梵天穿好的那根柱子上移动到另一根柱子上时,世界将在一声霹雳中消失,而Hanoi 塔,宇宙和众生也都将同归于尽。【Analysis】.原创 2021-07-12 16:55:10 · 341 阅读 · 1 评论 -
【文件】读入文件中的数据求分数的和,并化简成最简分数
时间限制: 1 Sec 内存限制: 128 MB题目描述请将文本文件fs.dic下载保存到当前目录下。已知fs.dic中每行数据都是4个正整数,用空格隔开,分别表示2个分数的分子和分母。例如当前行的数据为1 2 1 3表示2个分数 1/2和1/3对应的输出结果为5/6要求编写C程序,将fs.dic的每行数据对应的2个分数求和并化简成最简分数后输出。输入输入文件fs.dic.输出输出求和并化简后的分数数据。每个输出占1行。如果化简后的分数分母为1,则不输出分母。样.原创 2021-06-26 09:42:59 · 264 阅读 · 0 评论 -
【指针】【函数】【分支结构】 三个整数a,b,c从小到大排序
时间限制: 1 Sec 内存限制: 128 MB题目描述输入三个整数a,b,c;按照从小到大次序输出。样例输入1 2 33 2 16 6 6100 10 1样例输出1 2 31 2 36 6 61 10 100【Solution】 #include <stdio.h>int swap(int *x,int *y);int main(int argc, char *argv[]){ int a,b,c,*p1,*p2,*p3;.原创 2021-06-26 09:30:48 · 753 阅读 · 0 评论 -
填写字母和数字
【题目描述】如下图所示:在下三角阵列的方格中,按从左到右、从上到下的次序逐行依次填入大写字母、数字、小写字母。在填入字母A之后,下一个方格从B开始填入;在填入字母Z之后,下一个方格从数字0开始;在填入数字9之后,下一个方格从字母a开始;在填入字母z之后,下一个方格从字母A开始。以此类推……ABCDEFGHIJKLMNOPQISTU.原创 2021-06-23 18:01:00 · 331 阅读 · 0 评论 -
C语言:【函数】回文数
【题目描述】原题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“cbc”都是回文,而“abc”和“printirp”都不是回文。改写:判断回文数函数接口定义:int palindrome (int x);函数palindrome判断输入的字符数n是否为回文数。若是则返回1,否则返回0。裁判测试程序样例:#include <stdio.h>int palindrome(int x);int main(){.原创 2021-06-23 18:42:34 · 2462 阅读 · 0 评论 -
【C语言】信息加密问题
随着计算机网络的发展,计算机信息的保密问题显得越来越重要。密码技术就是对计算机信息进行保护的技术。采用密码技术对信息进行加密:将可识别的信息变为无法识别的信息,再将加密后的信息传输过去,使信息在传输过程中几十倍窃取或截获,窃取者也不能了解信息的内容,从而保证信息传输的安全。凯撒密码就是一种非常古老的加密方法,凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法.凯撒密码的原理很简单,就是采用替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面第三个字符,对应关系如下:原文:abcde.原创 2021-07-12 18:06:23 · 941 阅读 · 0 评论 -
【C语言】菱形图案
时间限制: 1 Sec 内存限制: 128 MB题目描述从键盘输入一个整数n(1≤n≤30),打印出指定的菱形。输入正整数n(1≤n≤30)。输出指定的菱形。第一行前面有n-1个空格,第二行有n-2个空格,以此类推。样例输入3样例输出 * ******** *** *【Solution】#include <stdio.h>int main(int argc, char *argv[]){ int n; scanf("%d",.原创 2021-06-28 16:48:06 · 831 阅读 · 0 评论 -
【C语言】十进制转换二进制
本题要求实现一个函数,将正整数n转换为二进制后输出。函数接口定义:void dectobin( int n );函数dectobin应在一行中打印出二进制的n。建议用递归实现。裁判测试程序样例:#include <stdio.h>void dectobin( int n );int main(){ int n; scanf("%d", &n); dectobin(n); return 0;}/* 你的代码将被嵌在这里 */原创 2021-06-25 15:04:57 · 104740 阅读 · 6 评论 -
【C语言】文本文件中的字符类别与个数
文本文件中的字符类别与个数时间限制: 1 Sec 内存限制: 128 MB题目描述请将文本文件info.dic下载保存到当前目录下,要求编写C程序,统计info.dic的大写字母、小写字母、数字的个数。样例输入例如,info.dic的内容(结尾有换行):```On July 20, 1969, Armstrong became the first man to walk on the moon.样例输出对应的输出结果为:upper:3lower:44di原创 2021-06-23 08:39:21 · 539 阅读 · 0 评论 -
【C语言】递归实现顺序输出整数(15 分)
递归实现顺序输出整数 (15 分)6-20本题要求实现一个函数,对一个整数进行按位顺序输出。函数接口定义:void printdigits( int n );函数printdigits应将n的每一位数字从高位到低位顺序打印出来,每位数字占一行。裁判测试程序样例:> #include <stdio.h>> void printdigits( int n );> int main() {> int n;> scanf("%d", &原创 2021-06-25 15:46:15 · 2905 阅读 · 1 评论