- 博客(27)
- 收藏
- 关注
原创 判断栈的合法序列
以I和O作为出栈和入栈操作的缩写,若栈的终态和始态都为空,判断一个序列是否合法#include <stdio.h>#include <stdlib.h>int judge();int main(int argc, char** argv){char a[8];int i=0;for(i=0;i<8;i++){scanf("%c",&a[i]);}judge(a);return 0;}int judge(char a[]){int i=0;
2022-06-27 16:25:30
327
1
原创 猴子吃桃子问题
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾又多吃了一个;第二天早上又将剩下的桃子吃了一半,又多吃了一个。以后的每天早上都是如此,到第十天的时候,只剩一个桃子了,求第一天摘了多少个桃子。#include <stdio.h>#include <stdlib.h>#include <math.h>#define N 10int main(){ int count=1; int n=1; int i=1; while(i<N)
2022-03-10 21:47:00
175
原创 冒泡排序,降序输出10个整数
#include <stdio.h>#include <stdlib.h>#include <math.h>#define N 10int main(){ //冒泡排序,降序输出10个整数 int i,j,post; int t=0; int data[N+1]; printf("请输入%d个整数\n",N); for(i=1;i<=N;i++) scanf("%d",&data[i])
2022-03-10 21:06:10
1939
原创 选择排序,降序输出10个整数
#include <stdio.h>#include <stdlib.h>#include <math.h>#define N 10int main(){ //选择排序,降序输出10个整数 int i,j,post; int t=0; int data[N+1]; printf("请输入%d个整数\n",N); for(i=1;i<=N;i++) scanf("%d",&data[i])
2022-03-10 20:59:33
2060
原创 穷举法求水仙花数
#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){ //穷举法求水仙花数 int i,j,k; int sum=0; int count=0; for(int i=1;i<=9;i++) { for(int j=0;j<=9;j++) { for(int k=0;k<
2022-03-10 20:38:42
754
原创 判断是否是素数
#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){ //求素数,1不是素数 int m,k,i; printf("请输入一个整数:\n"); scanf("%d",&m); k=sqrt(m); for(int i=2;i<=k;i++) { if(m%i==0) break;
2022-03-10 20:27:39
45
原创 辗转相除求公约数
#include <stdlib.h>int main(){//辗转相除法求公约数 int m,n; int p=1; printf("请输入两个整数:\n"); scanf("%d%d",&m,&n); while(p!=0) { p=m%n; m=n; n=p; } printf("最大公约数:%d\n",m); return 0;}码片...
2022-03-10 20:22:06
56
原创 计算1+3+5+...+99
#include <stdio.h>int main(){int i;int s=0;for(i=1;i<100;i=i+2){s+=i;// printf("%d\n",s);}printf(“1+3+5+…+99=%d”,s);return 0;}
2022-02-28 19:51:59
798
原创 编写程序,由键盘输入任意三个整数,输出最小的整数
#include <stdio.h>int main(){ int i,num,min; printf(“请输入第一个数:\n”);scanf("%d",&min);for(i=1;i<3;i++){printf(“请输入第%d个整数:\n”,i+1);scanf("%d",& num);if(num<=min){min= num;printf(“当前最小的数是%d\n”,min);}printf(“当前最小的数是%d\n”,mi
2022-02-28 19:37:00
5182
原创 归并排序
C语言数据结构归并排序#include <stdio.h>#include <string.h>#include <string>#include <math.h>#include <stdlib.h>void merge(int r[],int r1[],int low,int mid,int high){ int i=low,j=mid+1,k=low; while(i<=mid && j&
2021-01-20 17:26:56
54
原创 堆排序
C语言数据结构堆排序#include <stdio.h>void heap_adjust(int r[],int low,int high){ int i,j; r[0]=r[low]; i=low; j=2*i; while(j<=high) { if(j<high && r[j]>r[j+1]) { j++; } i
2021-01-20 17:25:46
65
原创 利用二叉树先序遍历序列创建二叉树的算法
根据C语言数据结构第六版课本算法5.3void CreateBiTree(BiTree &T){ //算法5.3 按先序遍历输入二叉树中的节点的值 //构造二叉链表表示的二叉树T TElemType ch; scanf("%c",&ch); if(ch=="#") T==NULL;//空树 else { T=(BiTree)m
2021-01-20 17:24:05
2013
原创 设计一个算法利用顺序栈的基本运算判断一个字符串是否为回文
顺序栈的基本运算栈的应用,先将所有的字符压入栈中,通过出栈一个个与数组str的字符从头到尾比较,根据栈的特性,先进后出,最先出栈的是字符串的尾int Palindrome(char str[],int n){ SqStack st;//定义一个顺序栈st InitStack(st);//栈初始化 int i; char ch; for(i=0;i<n;i++)//所有字符依次进栈 Push(st,str[i]); i=0;//从头开始遍
2021-01-20 17:21:56
3199
原创 设计求二叉树高度的算法
C语言数据结构二叉树求一棵二叉树T的高度int bt_Height(BiTNode *T){ if(T==NULL) return 0; else if(T->lchild==NULL&&t->rchild==NULL) return 1; else retrun 1+max(bt_Height(T->lchild),bt-Height(T->rchild));}..
2021-01-20 17:17:36
1499
原创 设计求二叉树T的结点个数的递归代码
C语言数据结构设计求一棵二叉树T的结点个数,使用递归的方法int NodeCount(BiTree *T){ int inum,rnum;if(T==NULL)//空树返回0return 0;else {inum=NodeCount(T->lchild);//求左子树的节点个数rnum=NodeCount(T->rchild);//求右子树的节点个数return (inum+rnum+1);//返回和加上1 }}...
2021-01-20 17:15:55
1297
原创 编写程序控制一个球的移动
编写程序控制一个球的移动,实现以下功能:上下的控制;边界检测;结合 kbhit 实现惯性移动(即按一下方向键,圆就会一直向这个方向移动)#include <graphics.h>#include <conio.h>int main(){ initgraph(640, 480); char c=1;//因为下面需要用到c的值,所以c必须初始化,这里给c初始化为一个与移动小球无关的值 int r= 20;//小球的半径 int x=320; int y=240
2020-07-11 20:43:05
1831
原创 使用C语言在vs2017下绘制一个小球以某种随机的角度来发出,碰到边界会反弹
绘制一个球,以某种随机的角度来发出,碰到边界后会反弹,假定反弹的速度不变,但是注意角度。#include <graphics.h>#include <conio.h>int main(){ initgraph(640, 480); int r = 20; //设置小球的半径为20 int x = 320; int y = 240; //假设小球的初始位置在界面的中间 //这两个初速度可以在恰当的范围内选择 int vx = 1; int vy = 1; /
2020-07-11 20:41:31
980
原创 用C语言在vs2017下模拟一个小球的自由落体并反弹的过程
模拟一个球自由落体并反弹的全过程,假定每次反弹都是弹回原来的一半高度,但是到了一定高度后就不再反弹了;#include <graphics.h>#include <conio.h>#include <math.h>int main(){ initgraph(640, 480); int h= 20; int y; int v; int t = 0; while (h < 459)//460时,小球最终不会停下来 { v = 0; t
2020-07-11 20:38:39
576
原创 编写函数实现左,右循环位移
编写两个函数lrmove、rrmove分别实现左、右循环移位。函数的原型为:int lrmove(int value, int n)int rrmove(int value, int n)其中value为循环移位的数,n为位移的次数。左(右)循环移位是指从左(右)边移出的数位移入到右(左)边空出的数位上。#include <stdio.h>int main(){ int irmove(int value,int n); int rrmove(int value,int
2020-07-11 20:35:07
1167
原创 编写一个函数从32位存储单元中取出某一位
编写一个函数从一个32位的存储单元中取出某一位。函数的原型为:int getbit(int value, int n)其中value为一个整型数据,n为欲取出的位序。#include <stdio.h>#include <stdlib.h>int getbit(int value, int n){ if(n > 32 || n <= 0) return -1; char ret[32]; int count = 0; unsig
2020-07-11 20:32:35
817
原创 编写一个函数找出四门成绩总成绩最高的学生(假设不会出现并列最高)
某班有5个学生,4门课。编写一个程序实现如下要求:① 编写一个函数find_max找出4门课程总成绩最高的学生(假设不会出现并列最高),并将指向该学生的指针返回主函数。② 编写一个主函数,在主函数中初始化5个学生4门课程的二维数组,调用find_max函数,并输出find_max函数返回指针所指向学生的编号及各门课程的成绩。#include <stdio.h>#include <stdlib.h>#define N 5//学生人数#define M 4//课程门数d
2020-07-11 20:30:31
1176
原创 编写一个主函数和子函数char *tran(int x, int r), 要求是:函数tran将十进制整数x转换成r进制数y(r在2~16之间), x和r的值由主调函数(即主函数)传入,y的值需要返
编写一个主函数和子函数char *tran(int x, int r),要求是:函数tran将十进制整数x转换成r进制数y(r在2~16之间),x和r的值由主调函数(即主函数)传入,y的值需要返回主调函数进行输出。要求:y的值利用字符数组进行存储,数组的每一个元素存放y的一位数字字符#include <stdio.h>#include <string.h>int main(){ char *tran(int x,int r),*p,y[20]; int x
2020-07-11 20:20:09
1162
1
原创 用指向函数的指针数组编写一个菜单程序,使得选择菜单的某一功能后, 程序将调用相应的函数来完成该功能
// 用指向函数的指针数组编写一个菜单程序,使得选择菜单的某一功能后,程序将调用相应的函数来完成该功能#include <stdio.h>#include <stdlib.h>void f1(char s){ if(s=='w') printf("欢迎光临,女士\n"); else printf("欢迎光临,先生\n");}void f2(int k){ int i=0; char p1[3][100]
2020-07-11 20:18:02
743
原创 统计元音字母和辅音字母的个数
统计元音字母和辅音字母的个数#include <stdio.h>int main(){ char c=getchar(); int vowel=0,consonant=0; while(c!='\n') { if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u') vowel++; else consonant++; c=getcha
2020-07-11 20:15:07
2199
原创 将输入的单词的首字母变成大写形式,其他变成小写形式
将输入的单词的首字母变成大写形式,其他变成小写形式#include <stdio.h>int main(){ char c=getchar; int flag=1; while(c!='\n') { c=getchar(); if(flag==1){ c=c-32; printf ("%c",c); flag=0; } els
2020-07-11 20:13:00
1413
1
原创 编写一个函数,找出m行n列的二维数组a中的鞍点,在主函数中输入二维数组,并调用函数
/所谓“鞍点”是指该位置上的元素在该行上最大,而在该列上最小(一个二维数组中可能没有鞍点)。假设二维数组a中的所有整数都是不相等的。/#include<stdio.h>#define N 3void ad(int a[][N],int m){ int b[m][N],i,j,max,min,k,flag=1; for(i=0;i<m;i++) for(j=0;j<N;j++) b[i][j]=0; for(i=0;i&l
2020-07-11 20:06:20
2298
原创 使用C语言在vs2017下设计小游戏推箱子
#使用C语言在vs2017下设计一个小游戏--------推箱子首先我们要明白这个小游戏的完成需要哪些要素分别用不同的数字代表这些要素//0:空地//1:墙//3:箱子的目的地//4:箱子//6:人//7:箱子与目的地重合//9:人在目的地然后定义一个三维数组来存放他们,完成一个初始的布局初始界面如下游戏界面如下//地图int map[4][10][12] = { { {0,0,0,1,1,1,1,1,1,1,1,1}, {1,1,1,1,0,0,0,0,0,0,
2020-07-10 13:10:51
493
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人