![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
leimingzeOuO
已退役
展开
-
Deque (25 分) Data Structures and Algorithms (English)
6-3 Deque (25 分)A “deque” is a data structure consisting of a list of items, on which the following operations are possible:Push(X,D): Insert item X on the front end of deque D.Pop(D): Remove the front item from deque D and return it.Inject(X,D): Inse原创 2021-09-06 23:41:08 · 139 阅读 · 0 评论 -
二叉树的非递归算法(四种遍历)
/*NSTree.h*/#ifndef NSTREE_H_INCLUDED#define NSTREE_H_INCLUDEDtypedef char elemType;typedef struct BiTNode{ elemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;void visit(elemType x);BiTree createBiTree();void PreOrderTraverseNo原创 2021-05-21 00:17:16 · 252 阅读 · 0 评论 -
非递归先序遍历二叉树
void PreOrderTraverseNonRec(BiTree T)//先序非递归遍历二叉树{ Stack *S=InitStack(); BiTNode *p; push(S,T); while(!isEmpty(S)) { p=GetTop(S); while(P!=NULL) { visit(p->data); push(S,p->lchild)原创 2021-05-13 01:00:58 · 329 阅读 · 0 评论 -
《数据结构》实验五----顺序队列的基础操作
/*SeqQueue.c*/#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include "SeqQueue.h"void InitQueue(SeqQueue *SQ){ SQ->front=SQ->rear=0;//队头和队尾指针同时指向0}int IsEmpty(SeqQueue *SQ)//判断队列是否为空{ if(SQ->front==SQ-&原创 2021-05-06 20:46:11 · 440 阅读 · 0 评论 -
数据结构与算法题目集(中文)09-11
6-9 二叉树的遍历 (25 分)void InorderTraversal( BinTree BT ){ if(BT) { InorderTraversal( BT->Left ); printf(" %c",BT->Data); InorderTraversal( BT->Right ); }}void PreorderTraversal( BinTree BT ){ if(BT)原创 2021-05-04 19:04:02 · 169 阅读 · 0 评论 -
7-26 玩转二叉树
#include <stdio.h>#include <malloc.h>#include <stdlib.h>int pre[1001],in[1001];typedef int ElemType;typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;BiTree CreatBiTree(int *pre,int *i.原创 2021-05-04 01:55:48 · 279 阅读 · 0 评论 -
二叉树的四种遍历(前序中序后序层次遍历)
void InorderTraversal( BinTree BT ){ if(BT) { InorderTraversal( BT->Left ); printf("%c",BT->Data); InorderTraversal( BT->Right ); }}void PreorderTraversal( BinTree BT ){ if(BT) { printf("%c",原创 2021-05-03 23:25:19 · 123 阅读 · 0 评论 -
数据结构与算法题目集(中文)05-08
6-5 链式表操作集 (20 分)本题要求实现链式表的操作集。函数接口定义:Position Find( List L, ElementType X );List Insert( List L, ElementType X, Position P );List Delete( List L, Position P );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data;原创 2021-05-03 18:09:02 · 173 阅读 · 1 评论 -
二叉树的基本操作(递归算法)
/*BSTree.h*/typedef char elemType;typedef struct BiTNode{ elemType data; struct BiTNode *lchild, *rchild;}BiTNode,*BiTree;BiTree creatBiTree();//二叉树创建void PreOrderTraverse(BiTree T);//先序遍历void InOrderTraverse(BiTree T);//中序遍历void PostOrderT原创 2021-05-02 18:03:38 · 269 阅读 · 0 评论 -
数据结构与算法题目集(中文)01-04
6-1 单链表逆转 (20 分)题目链接List Reverse(List L){ PtrToNode p; PtrToNode q; PtrToNode r; if(L==NULL) return L; p=L; q=L->Next; L->Next=NULL; while(q) { r=q->Next; q->Next=p; p=q;原创 2021-05-02 00:14:13 · 166 阅读 · 0 评论 -
《数据结构》实验四----链栈的基础操作
/*LinkStack.c*/#include <stdio.h>#include <stdlib.h>#include "LinkStack.h"#include <windows.h>void InitStack(LinkStack* top)//栈链初始化{ if((*top=(LinkStack)malloc(sizeof(LStackNode)))==NULL) exit(0); (*top)->next=NUL原创 2021-04-27 16:57:31 · 252 阅读 · 0 评论 -
《数据结构》实验三----顺序栈的基本操作
#include <stdio.h>#include <stdlib.h>#define MAXSIZE 100typedef int DataType;typedef struct SeqStack{ DataType stack[MAXSIZE]; int top;}SeqStack;void InitStack(SeqStack *s)//初始化栈{ s->top=-1;}int StackEmpty(SeqStack s)//原创 2021-04-25 21:16:03 · 623 阅读 · 0 评论 -
L1-058 6翻了 (15 分)
L1-058 6翻了 (15 分)#include <stdio.h>#include <string.h>int main(){ char s[10001]=""; gets(s); int i,j,k; int n=strlen(s); int start=0,end=0; int len=0; for(i=0;i<n;i++) { if(s[i]=='6') {原创 2021-04-23 23:50:54 · 119 阅读 · 0 评论 -
PTA团体程序设计天梯赛-练习集(L1-001~L1-048)
L1-001 Hello World (5 分)#include <iostream>using namespace std;int main(){ cout << "Hello World!"; return 0; system("pause");}L1-002 打印沙漏 (20 分)#include <iostream>using namespace std;int main(){ int N,n=0,i=1,r=0;原创 2021-04-23 01:51:45 · 572 阅读 · 0 评论 -
2021-04-20
R6-1 括号匹配判断 (30 分)输入样例1:{[2*(3+2)-7]}/4输出样例1:{[2*(3+2)-7]}/4 match输入样例2:{[()]}输出样例2:{[()]} matchint match (char exp[]){ int i,k=0,j=0,flag=0; char s[20]; char a[20]; for(i=0;i<strlen(exp);i++) { switch(exp[i])原创 2021-04-20 01:02:25 · 105 阅读 · 0 评论 -
2021-04-15
输入样例:3 2018 15 1075 72 45输出样例:94.50用C++中sort从大到小排序将会非常简单#include <iostream>#include <algorithm>using namespace std;struct moon{ double num;//总量 double sum;//总价 double pri;//单价}a[1223];bool cmp(moon x, moon y){ return x.pri &g.原创 2021-04-15 22:48:48 · 94 阅读 · 0 评论 -
2021-04-14
7-38 装箱问题输入样例:860 70 80 90 30 40 10 20输出样例:60 170 280 390 430 140 510 120 25#include <stdio.h>int main(){ int N; scanf("%d\n",&N); int i,j,max=0; int a[1000]={0},b[1000]={0}; for(i=0;i<N;i++) scanf(原创 2021-04-15 00:26:05 · 823 阅读 · 0 评论 -
2021-04-07
好吧,我承认我到瓶颈了输入样例:7 8 45 6 12 7 -11 3 13 4 16 7 -11 2 11 4 12 3 -13 45 72 37 2输出样例:No problemOKOK but…No way#include <iostream>using namespace std;int main(){ int N, M, K; cin >> N >> M >> K; int map[101][10原创 2021-04-07 23:33:10 · 234 阅读 · 0 评论 -
四舍五入C语言(愚人节快乐)
定义两个小数,num1,num2,求他们的和,四舍五入保留整数思路:将double型变量强行转换为int型时会省去小数部分,所以给这个小数加0.5。例如 :#include <stdio.h>int main(){ double num1,num2; double sum; scanf("%lf%lf",&num1,&num2); sum=(int)(num1+num2+0.5); printf("%.0f",sum);原创 2021-04-01 00:33:52 · 254 阅读 · 0 评论 -
2021-03-30
7-5 说反话-加强版给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:*测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。*输出格式:每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。输入样例:Hello World Here I Come输出样例:Come I Here World Hello感谢杭州电子科原创 2021-03-30 22:44:27 · 1170 阅读 · 0 评论 -
2021-03-29
7-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和能达原创 2021-03-30 00:41:53 · 1113 阅读 · 0 评论 -
2021-03-28
7-11 稳赢大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。输入格式:*输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。*输出格式:对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。输入原创 2021-03-28 23:24:44 · 156 阅读 · 0 评论 -
2021-03-26
L1-023 输出GPLT (20 分)给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT…这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。输出格式:在一行中按题目要求输出排序后的字符串。题目保证输出非空。输入样例:pcTclnGloRgLrtLh原创 2021-03-26 19:48:58 · 156 阅读 · 0 评论 -
2021-03-25
我郁闷了,把题目复制过来就说严重类似,只好把题删了QAQL1-017 到底有多二输入格式:输入第一行给出一个不超过50位的整数N。输出格式:在一行中输出N犯二的程度,保留小数点后两位。输入样例:-13142223336输出样例:81.82%鸣谢安阳师范学院段晓云老师和软件工程五班李富龙同学补充测试数据!#include <stdio.h>#include <string.h>int main(){ char a[51]; int n,i=原创 2021-03-26 01:10:44 · 189 阅读 · 0 评论 -
程序设计天梯赛校级选拔赛试题集L6-L7
7-6 反向数相加反向数是将一个阿拉伯数字按相反的次序写。把第一个数字写成最后一个数字,依次类推。 例如, 1245的反向数为5421。请注意,数字所有的前导零要被省略,所以,如果数字结尾有零,写反向数时零被略去(例如,1200的反向数是21)。还要注意反向数没有零结尾。 你的任务是将两个反向数相加,并输出它们的反向和。当然,结果不是唯一的,因为一个数可以是几个数的反向形式(例如21在反向前可以是12,120 或1200)。为此,本题设定没有0因为反向而丢失(例如,设定原来的数是12)。输入格式:输入原创 2021-03-25 02:02:47 · 182 阅读 · 0 评论 -
程序设计天梯赛校级选拔赛试题集L1- L4
7-1 求玉米亩产量如图,有一块玉米地,位于一条东西向公路的北侧,南北向公路的东侧。第一个顶点距离南北路750米,东西路550米;第二个顶点距离南北路850米,东西路50米;第三个顶点距离南北路50米,东西路250;第四个顶点距离南北路150米,东西路450米。该块地种植玉米,收获的总产量为120吨,求玉米每亩产量为多少千克?要求编写程序求解该问题。编程要求:程序中至少要有两个函数,函数的功能如下:(1)编写函数计算两点之间的距离,从而算术图中四边形的四个边的长度以及一个对角线的长的;(2)原创 2021-03-24 21:45:18 · 2160 阅读 · 5 评论 -
L1-011 A-B (20 分)
本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。输入格式:输入在2行中先后给出字符串A和B。两字符串的长度都不超过10^4 ,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。输出格式:在一行中打印出A−B的结果字符串。输入样例:I love GPLT! It’s a fun game!aeiou输出样例:I lv GPLT! It’s fn gm!这第一次写法原创 2021-03-24 13:39:57 · 81 阅读 · 1 评论 -
L1-010 比较大小 (10 分)
本题要求将输入的任意3个整数从小到大输出。输入格式:输入在一行中给出3个整数,其间以空格分隔。输出格式:在一行中将3个整数从小到大输出,其间以“->”相连。输入样例:4 2 8输出样例:2->4->8这里我用的是选择排序。#include <stdio.h>int main(){ int a[3],i,min,temp,j; for(i=0;i<3;i++) scanf("%d",&a[i]); for(i=原创 2021-03-23 20:21:15 · 83 阅读 · 0 评论 -
L1-009 N个数求和 (20 分)
本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。输入格式:输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 …给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。输出格式:输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其中分数部分写成分子/分母,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。输入样例1:5原创 2021-03-23 01:25:57 · 256 阅读 · 0 评论 -
习题5-6 使用函数输出水仙花数 (20 分)
22行代码绽放一朵水仙花int narcissistic( int number ){ int n=0,a[7]={0},i=0,sum=0,k;//k保留number原值 k=number; while(number) { a[i]=number%10; number/=10; n++;//表示位数 i++; } for(i=0;i<n;i++) sum+=pow(..原创 2021-03-22 23:51:07 · 249 阅读 · 0 评论 -
L1-008 求整数段和
给定两个整数A和B,输出从A到B的所有整数以及这些数的和。输入格式:输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。输出格式:首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。输入样例:-3 8输出样例:-3 -2 -1 0 12 3 4 5 67 8Sum = 30#include <stdio.h>i原创 2021-03-22 19:10:05 · 84 阅读 · 0 评论 -
L1-005 考试座位号
每个 PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式: 输入第一行给出一个正整数== N==(≤1000),随后 N行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N原创 2021-03-22 17:09:41 · 107 阅读 · 0 评论 -
L1-003 个位数统计 (15 分)
#include <stdio.h>#include <string.h>int main() { char number[1001]; scanf("%s",number); int n,a[10]={0}; n=strlen(number); for (int i=0;i<n;i++) a[number[i]-'0']++; for (int i=0;i<10;i++) if(a[i]) printf("%原创 2021-03-21 20:39:49 · 97 阅读 · 0 评论 -
L1-002 打印沙漏 (20 分)
#include <stdio.h>int main(){ int N,n=1,k=0,i,j,res=0; char c; scanf("%d %c",&N,&c); while(2*n*n-1<=N) { n++; } n=n-1; res=N-(2*n*n-1); k=2*n-1;//k层 //printf("%d %d",k,n); for(i=0;i<原创 2021-03-21 20:05:23 · 176 阅读 · 0 评论 -
PTA 程序设计天梯赛 L1-046 整除光棍
整除光棍这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 ——原创 2021-03-20 23:57:00 · 164 阅读 · 0 评论 -
倒叙输入
下面展示一些 内联代码片。#include <stdio.h>#include <string.h>int main(){ char number[99];//定义一个长度为99的字符串number,长度可以根据题意定 int n,i; scanf("%s",number);//输入字符串(eg.1234) n=strlen(number);//n为字符串number的长度,例如1234的长度为4; for(i=n-1;i>=0;i--)原创 2021-03-20 23:37:36 · 143 阅读 · 0 评论 -
0-100,猜数字()
废话不多少直接上代码#include <stdio.h>int main(){ int num[999]={0},i=0; srand((unsigned)time(NULL)); int a=rand()%100;//调用函数,随机生成[0,100]; printf("*******************\n"); scanf("%d",&num[0]); while(num[i]!=a) { pr原创 2021-03-18 18:00:48 · 741 阅读 · 0 评论