![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PTA
haohuaijin
脚踏实地,实事求是。
个人博客: https://haohuaijin.github.io
展开
-
7-13 日K蜡烛图 (15 分)
大体思路就是模块化,先写一个函数用来判断阴影的类型并输出。#include <stdio.h>void Shadow(char S[],double open,double close,double high,double low);int main(){ char S[3][15] = {"BW-Solid","R-Hollow","R-Cross"}; ...原创 2019-09-07 10:47:02 · 476 阅读 · 0 评论 -
7-31 字符串循环左移 (20 分)
#include <stdio.h>#include <string.h>int main(){ char s[101]; int num; //左移的数目 int len; //量取字符串的长度不含'\0' int first; //定义移动后的字符串首字符的下标 char change[101]; scanf("%[^\n]",s...原创 2019-09-18 16:47:57 · 463 阅读 · 0 评论 -
7-2 一元多项式的乘法与加法运算 (20 分)
7-2 一元多项式的乘法与加法运算 (20 分)这是在浙大MOOC数据结构的一道课后题,可是浪费了我很多的时间大约4,5个小时。感觉这道题的逻辑并不复杂,也不是很难,但就是没能构想出他的整个的运行过程,导致在编程的时候浪费了大量的时间#include <stdio.h>#include <stdlib.h>typedef int ElementType;typ...原创 2019-09-20 10:14:50 · 1310 阅读 · 0 评论 -
6-11 求自定类型元素序列的中位数 (25 分),用内置函数qsort()
最后一个测试点的中位数,和前面的为什么不同#include <stdlib.h>ElementType Median( ElementType A[], int N ){ int i; int num; num = (int)(N/2); if(N > 1000) num = (int)(N/2 + 1); //为什么大的数要这样 ...原创 2019-09-20 16:34:34 · 159 阅读 · 0 评论 -
7-35 有理数均值 (20 分)
7-35 有理数均值 (20 分)在做这个题的时候,开始的时候一直用for循环来找公因子,但是第三个测试点一直过不去。然后我在网上搜搜了搜资料发现,我和那些人不同的只是在寻找约数的方法上,所以用写了个函数用辗转相除法来求最大公约数,最后成功通过AC 代码#include <stdio.h>#include <stdlib.h>int gcd(int a,in...原创 2019-09-22 10:58:44 · 683 阅读 · 0 评论 -
7-38 数列求和-加强版 (20 分)
7-38 数列求和-加强版 (20 分)这个题和之前的一个阶乘问题比较相似,因为要防止数据溢出,所以都要要用数组来保存数字的位数。在这个问题中同样用这样的方法。1、用count来记录位数,用index来指示进位。2、这个问题中有一个地方我没有优化好,就是第一个元素的输出有的时候还是0。所以最后用了flag标志,来消除错误的输出。#include <stdio.h>#incl...原创 2019-09-23 21:22:35 · 1126 阅读 · 0 评论 -
7-36 复数四则运算 (15 分)
7-36 复数四则运算 (15 分)本题我认为主要是麻烦在了各种的判断if,else if等的判断,但是只要写一个函数把他都封装起来,就简单了很多。在做这道题是在c语言的课上,没有集中注意力,静下心来导致很烦躁,让他的判断给搞烦了,但是晚上回宿舍再看题目时,思路就清晰了许多,也就做出来了。这提示我们编程时要选择相对安静的环境,或者自己能够静下心来。#include <stdio.h...原创 2019-09-25 22:08:30 · 2142 阅读 · 0 评论 -
7-23 币值转换 (20 分)
7-23 币值转换 (20 分)做题感悟:如果只是简单的由数字转化为带万,千,百,十的,其实并不难。他的难点就在于**‘ 零 ’ 的使用**要符合我们的日常用法。就比如1001,读出来就是一千零一,而不是一千一。在做题的时候发现题目的验证有一点的缺陷:就是我的代码在输入时1001的时候,输出的是一千一,却满分通过了,不过最后我修改了代码使它可以正确输出1001。#include <...原创 2019-09-26 16:58:32 · 468 阅读 · 1 评论 -
7-3 树的同构 (25 分)
7-3 树的同构 (25 分)树的同构:这道题主要是能够读懂题意,给的数据中左右子树的编号是你输入数据时的编号,例如A 1 2他的意思是A的左子树是输入的编号为1的数据(就是输入的第二组数据)A的右子树是输入的编号为2的数据(就是输入的第三组数据)以此类推。。。下面是我的代码:我不知道为什么在我电脑的编译器上sample 1 可以正确的输出Yes,但是上交PTA就显示答案错误...原创 2019-09-26 21:23:58 · 345 阅读 · 0 评论 -
符号配对 (20 分)
符号配对 (20 分)思路:1、将数据全部都读入,然后预处理为只有(),{},[],/*/的形式。2、利用栈来判断是否相符其实本题的难点也是这两方面,读入数据.和\n比较麻烦。可以同getchar()和字符数组来处理。二就是,再利用栈判断是否相符时,需要些很多的if和else if的结构,用来分辨多种条件。由于我并没有这道题的权限,所以代码没有在OJ上跑过,但是三个例子均可成功,我也...原创 2019-09-28 00:00:27 · 1407 阅读 · 0 评论 -
7-30 字符串的冒泡排序 (20 分)
#include <stdio.h>#include <string.h>int main(){ int num,k; char s[101][11]; char temp[11]; int m=0; scanf("%d %d",&num,&k); for(int i=0;i<num;i++){...原创 2019-09-18 07:28:59 · 494 阅读 · 0 评论 -
7-28 猴子选大王 (20 分)
感觉思路不难,就是实现的时候有几个坑,需要仔细的推理。#include <stdio.h>int main(){ int n; int total; int clc=0; int count=0; scanf("%d",&n); int a[1001] = {0}; int m = 0;//删除后的起点 ...原创 2019-09-14 22:22:34 · 1387 阅读 · 0 评论 -
7-27 冒泡法排序 (20 分)
#include <stdio.h>int main(){ int n,k; int a[100]; scanf("%d %d",&n,&k); for(int i=0;i<n;i++) { scanf("%d",&a[i]); } for(int i=0;i<k;i++)...原创 2019-09-12 21:05:29 · 2188 阅读 · 0 评论 -
7-14 求整数段和 (15 分)
直接上代码#include <stdio.h>int main(){ int start,end; int count = 0; int sum = 0; scanf("%d%d",&start,&end); for(int i=start;i<=end;i++) { printf("%5d"...原创 2019-09-07 11:03:09 · 221 阅读 · 1 评论 -
7-18 二分法求多项式单根 (20 分)
仅供参考#include <stdio.h>#include <math.h>double calcF(double num,double a[]);int main(){ double thred = 0.001; double a[4]; double A,B; double fA,fB; double temp;...原创 2019-09-07 12:48:51 · 241 阅读 · 0 评论 -
7-22 龟兔赛跑 (20 分)
7-22 龟兔赛跑 (20 分)分支结构要完整,分类讨论想全面#include <stdio.h>int main(){ int rab_m=0; int rab_time=0; int tur_m=0; int time; scanf("%d",&time); for(int i=1;i<=time;i++) ...原创 2019-09-07 16:08:41 · 475 阅读 · 0 评论 -
7-15 计算圆周率 (15 分)
一开始把问题想复杂了,构造了一个函数用来求关系式中的每一项,但是仔细考虑之后发现没有那么的麻烦。有一个规律,只需要将最后一项乘上(i)/(2*i + 1)后就可以成为新的last。#include <stdio.h>int main(){ double thred; double sum=0; double last=1.0; int i=0;...原创 2019-09-08 20:21:44 · 466 阅读 · 0 评论 -
7-17 爬动的蠕虫 (15 分)
#include <stdio.h>int main(){ int n,u,d; int mile=0; int sign = 1; int time=0; scanf("%d%d%d",&n,&u,&d); while(mile < n) { if(sign == 1) ...原创 2019-09-09 15:35:16 · 230 阅读 · 0 评论 -
7-16 求符合给定条件的整数集 (15 分)
刚开始想让它自由组合,然后在排序得到答案,最后没有弄出来。就暴力解出来了。#include <stdio.h>int main(){ int count=0; int num; int min; int max; scanf("%d",&num); max = (num+3)*100 + (num+2)*10 + num ...原创 2019-09-09 15:37:28 · 205 阅读 · 1 评论 -
7-19 支票面额 (15 分),最后一个测试点
这个题应该注意两点:1、浮点数存在不确定的尾数,所以不是十分的精确,精确的运算要用整数。2、在输出y.f的时候要注意f如果是个位数应该直接加到点后面,我一开始默认了f是两位数,导致最后一个测试点一直过不去,最后看了看别人的输出才恍然大悟。#include <stdio.h>int main(){ int y,f; int n; scanf("%d"...原创 2019-09-09 20:24:32 · 394 阅读 · 2 评论 -
7-1 最大子列和问题 (20 分)
这是浙大Mooc数据结构第一周的课后题,求最大的字节和,姥姥说要用课上的三种方法都是实验一遍,前面的都比较简单。但是用递归求解着实费了我半天劲,想了很久才想了怎么实现。下面就是实现的过程:#include <stdio.h>int maxseq(int a[],int start,int end);int main(){ int num; int a[100...原创 2019-09-10 19:46:06 · 318 阅读 · 0 评论 -
7-26 单词长度 (15 分)
开始的时候弄了半天,一直出不来结果,总是输出0 0 1 1 1 1之类的。我以为是a[m]的问题。看了好久还是没解决。最后一调试就发现是flag哪里弄成了(flag == 1)。这才解决了。注意:有问题多调试,调试就会发现问题。#include <stdio.h>#include <stdlib.h>int main(){ int c; int ...原创 2019-09-11 22:13:01 · 1938 阅读 · 0 评论 -
7-10 计算工资 (15 分)
做PTA,代码感觉没错,调试也没问题,但就是最后一个测试点,老员工超时,过不去。#include <stdio.h>int main(){ int year,time; double yuan; scanf("%d %d",&year,&time); if(year >= 5) { if(time &...原创 2019-09-07 09:53:48 · 870 阅读 · 0 评论