![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PTA题集
无由頁
这个作者很懒,什么都没留下…
展开
-
1027 打印沙漏(C语言详解)
前言这个题目思路不是很复杂但是我也写了好久(技术菜),关键在于编写“漏斗”的时候的技巧,左边留空格右边不用留就行了。比较让我疑惑的是为什么构不成沙漏也要打印出一个符号*不然有测试点通不过。正文题目本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号...原创 2020-03-21 20:08:40 · 11633 阅读 · 2 评论 -
1024 科学计数法(C语言详解)
前言这个题目要考虑好多小细节啊,我尽力了。。。正文题目科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。输...原创 2020-03-20 22:27:36 · 10140 阅读 · 1 评论 -
1022 D进制的A+B(普通和递归形式)
前言小菜鸡碰到熟悉的题目了hhh正文题目输入两个非负 10 进制整数 A 和 B (≤ 2^30^−1),输出 A+B 的 D (1<D≤10)进制数。输入格式:输入在一行中依次给出 3 个整数 A、B 和 D。输出格式:输出 A+B 的 D 进制数。输入样例:123 456 8输出样例:1103代码一#include <stdio.h>#...原创 2020-03-19 22:52:12 · 122 阅读 · 0 评论 -
1019 数字黑洞
前言这道题目思路不是很难想,就是编写有点麻烦正文题目:给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。例如,我们从6767开始,将得到7766 - 6677 = 1089...原创 2020-03-19 21:11:33 · 102 阅读 · 0 评论 -
1017 A除以B(模拟手动除法)
前言大佬们真是强,我还是菜鸡…一开始只想到模拟手动乘法…小白,,,手动除法第一次做,,,不过掌握了个新技巧hh正文题目:本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。输入格式:输入在一行中依次给出 A 和 B,中间以 1 空格分隔。输出格式:在一行中依次输出 Q 和 R,中间以...原创 2020-03-19 15:32:43 · 196 阅读 · 0 评论 -
1011 A+B 和 C(数据类型归纳)
前言这道题要注意数据长度正文#include <stdio.h> int main(){ int T; scanf("%d", &T); for (int i=1; i<=T; i++){ long int A,B,C; scanf("%ld %ld %ld", &A, &B, &am...原创 2020-03-17 22:53:16 · 272 阅读 · 0 评论 -
1009 说反话
前言我的思路:用用函数得到输入的一行s[],再将输入行s[]储存进二维数组a[i][j],然后再逆序输出a[i],但是我的代码有问题,出来的字符总有乱码。然后去看了网上大佬们的代码,写得真好~记录下来。正文题目给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中...原创 2020-03-17 21:20:55 · 86 阅读 · 0 评论 -
1007 素数对猜想(简洁代码)
前言开始做PTA Basic 了,加油。正文题目关键在于:存在无穷多对相邻且差为2的素数思路:利用判断素数函数判断素数,判断相差为2的两数是否为素数,若是则计入。代码:#include <stdio.h>#include <math.h>int isPrime ( int n );int main(void) { int N, i, count=0;...原创 2020-03-17 14:18:26 · 89 阅读 · 0 评论 -
习题8-7 字符串排序(用三种排序方法求解)
前言用到排序算法的比较字符串题目正文题目:本题要求编写程序,读入5个字符串,按由小到大的顺序输出。输入格式:输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。输出格式:按照以下格式输出排序后的结果:After sorted:每行一个字符串输入样例:red yellow blue green white输出样例:Aft...原创 2020-03-15 21:35:25 · 831 阅读 · 1 评论 -
习题11-6 查找子串
前言记录一下这道题,我没有用strlen但是有报错,不知道为什么。正文题目本题要求实现一个字符串查找的简单函数。函数接口定义:char *search( char *s, char *t );输入样例1:The C Programming Languageram输出样例1:10输入样例2:The C Programming Languagebored输出样例2...原创 2020-03-15 16:38:21 · 414 阅读 · 0 评论 -
习题11-5 指定位置输出字符串
前言第十一章内容关于指针和字符串。本题考察了指针和指针函数的知识点正文题目:本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符。函数接口定义: char *match( char *s, char ch1, char ch2 );输入样例1:programr g输出样例1:rog...原创 2020-03-15 14:39:02 · 201 阅读 · 0 评论 -
习题11-1 输出月份英文名(两种解决方式)
前言指针函数和指针数组的应用正文题目本题要求实现函数,可以返回一个给定月份的英文名称。函数接口定义: char *getmonth( int n );输入样例1:5输出样例1:May输入样例2:15输出样例2:wrong input!代码一:char *getmonth( int n ){ char *months[13]={"NULL","J...原创 2020-03-14 21:39:32 · 2122 阅读 · 0 评论 -
练习7-8 方阵循环右移(用二维&&一维分别实现)
前言这个题目一开始有想用二维,但是我对它又不太熟悉,然后就开始用一维数组,两者都可以实现,但是二维比一维少很多事。。。正文题目:本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m+1、⋯、n−1、0、1、⋯、n−m−1列。输入格式:输入第一行给出两个正整数m和n(1≤n≤6)。接下来一共n行,每行n个整数,表示一个n...原创 2020-03-12 21:53:19 · 206 阅读 · 0 评论 -
练习7-4 找出不是两个数组共有的元素
前言这个题目思路不是很复杂,主要是在于编写过程。注意for循环的使用和flag标志。正文题目给定两个整型数组,本题要求找出不是两者共有的元素。输入格式:输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。输出格式:在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样...原创 2020-03-12 14:40:16 · 245 阅读 · 0 评论 -
习题6-8 统计一行文本的单词个数
前言这个题目有点不严谨,数字也算是单词,我以为这个,Let’s go to room 209.5个单词是let us go to room。。。。是我戏太多了吗????正文题目本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。输入样例:Let’s go to room 209.输出样例:5代码一(正确...原创 2020-03-10 20:11:26 · 319 阅读 · 0 评论 -
习题6-7 简单计算器
前言这个题目有个报错,不知道为什么,记录下来等回头再看或希望有人能解答。正文模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。输入格式: 输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。输出格式: 在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错...原创 2020-03-10 00:01:01 · 359 阅读 · 3 评论 -
习题4-11 兔子繁衍问题
前言兔子可爱,但是我不会做题????,这题就应该不怕麻烦先把数列列出来,然后就清楚了,看正文吧。正文题目:一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?输入格式:输入在一行中给出一个不超过10000的正整数N。输出格式: 在一行中输出兔子总数达到N最少...原创 2020-03-09 21:40:33 · 226 阅读 · 0 评论 -
习题8-8 判断回文字符串
前言指针的题目,一开始要弄懂指针的概念,题目就比较好做。一开始没看到string.h的头文件,就没用strlen().正文本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。函数接口定义: bool palindrome( char *s );输入样例1: thisistrueurtsisiht...原创 2020-03-09 17:44:04 · 148 阅读 · 0 评论 -
习题8-6 删除字符
前言看到网上有些人写得有点复杂,用指针这样写就可以了正文本题要求实现一个删除字符串中的指定字符的简单函数。函数接口定义: void delchar( char *str, char c );其中char *str是传入的字符串,c是待删除的字符。函数delchar的功能是将字符串str中出现的所有c字符删除。输入样例: a happy new year输出样例: hpp...原创 2020-03-09 15:04:05 · 247 阅读 · 0 评论 -
习题4-6 水仙花数
前言之前也有一道水仙花数题,用的函数,这次不用函数,这里再对比看一下还是函数写法比较简单可读。正文代码一(正确)#include <stdio.h>int main(){ int n,a,b,end; int k,sum=0,s=1; int m; scanf("%d",&n); m=n; while(m>1){ s=s*10;...原创 2020-03-08 20:54:17 · 145 阅读 · 0 评论 -
习题8-4 报数
前言这个题目一开始没看懂,后来我查阅后才知道这个输出是什么意思,看到了一个简明的代码,记录下来。正文报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。本题要求编写函数,给出每个人的退出顺序编号。void CountOff( int n, int m, i...原创 2020-03-08 17:31:48 · 304 阅读 · 0 评论 -
习题8-3 数组循环右移
前言hhh写题目感受到了自己数学水平的低下,以及逻辑的不严密,不过我相信百炼成钢,继续肝!正文本题要求实现一个对数组进行循环右移的简单函数:一个数组a中存有n(>0)个整数,将每个整数循环向右移m(≥0)个位置。 函数接口定义:int ArrayShift( int a[], int n, int m );输入样例: 6 2 1 2 3 4 5 6 输出样例: 5 6 ...原创 2020-03-07 15:14:00 · 815 阅读 · 0 评论 -
错误分析:习题4-2 求幂级数展开的部分和
前言这次主要分析这一次练习中的出现的错误,之前做的题目中也有一些错误没有更正,看后续有时间就补上。正文代码一(错误)#include <stdio.h>#include <math.h>int jc(int fm){ int i; int sum=1; for(i=1;i<=fm;i++) sum=sum*i; return sum;...原创 2020-03-06 22:18:06 · 257 阅读 · 0 评论 -
练习4-11 统计素数并求和
前言PTA上有个函数题与其类似,然后它既然归为编程题,我就尽量不用函数做,文末会贴一下别人做的。正文本题要求统计给定整数M和N区间内素数的个数并对它们求和。输入格式: 输入在一行中给出两个正整数M和N(1≤M≤N≤500)。输出格式:在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。输入样例: 10 31输出样例: 7 143代码(正确)#incl...原创 2020-03-05 22:11:23 · 1038 阅读 · 0 评论 -
练习8-8 移动字母
前言这个10分的题目我竟然犹豫得比20分的题目还久。。。还是要多加练习。正文 题目:本题要求编写函数,将输入字符串的前3个字符移到最后。输入样式:abcdef 输出样式:defabc#include <stdio.h>#include <string.h>#define MAXS 10void Shift( char s[] );voi...原创 2020-03-05 18:18:15 · 618 阅读 · 0 评论 -
习题6-6 使用函数输出一个整数的逆序数
前言这个题目我第一眼感觉和K&RC中的itoa/reverse函数有点像,我就又开始用数组。。。但是发现数组好像不太可行,被题目限制了,就不用数组了。正文题目:本题要求实现一个求整数的逆序数的简单函数。函数定义接口: int reverse( int number );输入样例:-12340输出样例:-4321代码(正确)#include <stdio.h...原创 2020-03-05 15:22:54 · 468 阅读 · 0 评论 -
习题6-5 使用函数验证哥德巴赫猜想
前言这一题比前面几道函数题简单一些,不过自己在写程序的时候也犯了错误。把自己的方法和错误记录下来。正文代码(正确)#include <stdio.h>#include <math.h>int prime( int p );void Goldbach( int n );int main(){ int m, n, i, cnt; scanf...原创 2020-03-05 13:04:41 · 257 阅读 · 0 评论 -
习题6-4 使用函数输出指定范围内的Fibonacci数
前言这一题,首先感觉用数组比较容易解决,但是运算时间会超时,答案还是不会错的,然后改了不用数组就能完全正确了。注意的是最后那个“空格”不能有,出得有些巧妙。正文题目:本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两...原创 2020-03-04 19:33:29 · 1015 阅读 · 0 评论 -
习题6-3 使用函数输出指定范围内的完数
前言这个题目有点麻烦,判断是否为完数的函数,很快就把程序写下来了,但是对于输出那种格式我想了好一会儿。最后写出来代码有点长(嵌套多不易读)还是技术不行啊,结果都能输出但是PTA的编译器还是报错,做个参考,不知道原因。。。正文代码一(无法通过)想看正确答案,请直接跳过至代码二。#include <stdio.h>int factorsum( int number );v...原创 2020-03-03 21:08:36 · 258 阅读 · 0 评论 -
习题5-6 使用函数输出水仙花数
前言这次做的是比较经典的谁“水仙花数”判断程序。题目本身并不难,很快能想到解决方法,就是在编写的过程中会漏掉一些细节的东西,比如各个变量的在加减中值会改变,就要用一个副本来存储它。这次做题目,我也真切的感受到调试的重要性!所以学习写程序的新手们都要学会自己调试代码啊正文题目:水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。本题要求编写两个函数,一个判断给定...原创 2020-03-02 19:27:46 · 471 阅读 · 0 评论 -
习题5-5 使用函数统计指定数字的个数
前言选择这个例题,因为里面正好包括了昨天说的递归方法。其实PTA上的题目一般可以一题多解,发现自己还是有点懒,没有主动思考,一般做过一次答案成功就不去寻求多种解法了,这并不是一个好的学习C的习惯。正文题目:本题要求实现一个统计整数中指定数字的个数的简单函数,接口函数定义:int CountDigit( int number, int digit );其中number是不超过长整型的整数...原创 2020-03-02 13:35:38 · 630 阅读 · 0 评论 -
求N分之一序列前N项和&求奇数分之一序列前N项和
前言开启PTA刷题之旅,这个好用是好用就是有的时候错的我一脸懵逼。( ̄ε(# ̄)☆╰╮( ̄▽ ̄///)脸被打得好痛。不多bb,撸起袖子,开干。正文#include<stdio.h>int main(void){ int i, n; double sum;//要用doubel型,不然过大数字无法通过 scanf("%d", &n); sum=0; i=1;...原创 2020-03-01 12:08:45 · 926 阅读 · 1 评论