C语言
Mr.VK
这个作者很懒,什么都没留下…
展开
-
【数据结构】【C语言】 栈的应用之进制转换
进制转换使用的方法是短除法短除法图示:原理: 图中9是待转换数,将9与2相除,得到的余数依次入栈,当待转换数9被除为0时,将栈中的余数依次出栈,即得到9的二进制形式:1001代码示例:#include<stdio.h>#include<stdlib.h>#define MAXSTACK 50 //栈的最大容量//结构体的定义——>栈的属性struct myStack{ int* stackMemory; //以栈中存储的数据是整数为例 i.原创 2021-09-08 19:21:31 · 4849 阅读 · 0 评论 -
【数据结构】【C语言】 栈和队列知识点+笔记
队列的定义:队列也是一种线性表,逻辑结构与线性表相同,为一对一结构,分为顺序队列和链式队列。队列只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。栈的定义:栈是一种线性表,限定仅在表尾进行插入和删除操作的线性表,表尾又称为栈顶。逻辑结构与线性表相同,也为一对一结构。线性表分为顺序表和链表,同样的栈也可以分为顺序栈和链栈。顺序栈和链栈的区别:顺序栈的实现在于使用了数组这个基原创 2021-09-07 21:56:08 · 89 阅读 · 0 评论 -
【数据结构】【C语言】 链表知识点+笔记
1. 内存4区代码区:函数代码,存放在代码区,函数名就是这个函数的地址全局区:全局的变量,字符串常量栈区:系统开辟和释放堆区:用户决定要开辟多大内存?装什么数据?使用完后还要不要继续使用? 用户自己需要决定开辟和释放内存示意图:#include<stdlib.h> Int *p; P=(int *)molloc(size); //在堆区开辟size个字节的内存 //指针p指向这段内存 //用molloc去开辟的内存不会自动释放,需要手动释放 Free(p)原创 2021-08-22 23:30:39 · 177 阅读 · 0 评论 -
C语言程序设计练习(一)(HDU 2000-2007)
**题目网址:**http://acm.hdu.edu.cn/search.php?field=problem&key=C%D3%EF%D1%D4%B3%CC%D0%F2%C9%E8%BC%C6%C1%B7%CF%B0%A3%A8%D2%BB%A3%A9&source=1&searchmode=sourceASCII码排序(HDU 2000)AC代码://ASCII排序 #include<stdio.h>int main(){ char a,b,c,t;原创 2021-03-22 21:50:35 · 143 阅读 · 0 评论 -
OJ 3177:判断素数个数 (C语言)
先来看一下题目:题目链接:AC代码:#include <stdio.h> void swap(int *a, int *b) //x,y交换顺序 { int t; t = *a; *a = *b; *b = t;} int isprime(int n) //判断n是否为素 { int i; for(i=3; i*i<=n; i+=2) { if(n % i == 0) {原创 2021-02-13 06:26:13 · 477 阅读 · 0 评论 -
HDU 2504: 又见GCD (C语言)
先来看一下题目:题目链接:https://vjudge.net/problem/HDU-2504题目中说a,c的最大公因数是b。现已知a,b求c,则c肯定从b开始向a逼近,即b,2b,3b,4b…,而题目要求b!=c,故从2b开始循环,每次加b,所以我们先用gcd算法求出a,b的最大公约数,如何如下图的循环来枚举i,判断是否等于a,b的最大公约数,如果等于则说明现在的i就是我们要求的c。for(i=2*b;i<a;i+=b) { if(gcd(a,i)==b) {原创 2021-02-13 06:18:03 · 277 阅读 · 0 评论 -
HDU 2081:手机短号 (C语言)
先来看一下题目:原创 2021-02-13 06:03:41 · 1662 阅读 · 0 评论 -
HDU 2021:发工资咯 (C语言)
题目:题目要求我们原创 2020-12-21 20:34:46 · 819 阅读 · 1 评论 -
辗转相除法求最大公约数 gcd算法(C语言)
代码实现:#include<stdio.h>int main(){ int a,b,r,temp; scanf("%d %d",&a,&b); if(a<b)//如果a<b,将a,b位置对换 { temp=a; a=b; b=temp; } r=a%b; while(r!=0) { a=b; b=r; r=a%b; } //当r=0时,此时b的值就是最大公约数 printf("%d\n",b); return原创 2020-12-17 18:13:14 · 566 阅读 · 0 评论 -
快速幂算法 Quickmod(C语言)
快速幂的算法快速幂算法一般用于指数比较大的幂运算,例如3的100次方,2的50次方等等,相比于使用pow(a,b)函数来说,快速幂运行所需时间更小,在一些有时间限制的题目上有着非常大的优势算法原理:例如我要算3的100次方,我们可以不停的3x3x3x3……x3一直乘到第100-1个3,这样算起来虽然比较直观易懂,但是如果放到代码上去运行步骤会非常的重复繁琐,而且运行的时间比较长快速幂原理是将3的100拆分为3的50次方和3的50次方相乘,而3的50次方又可以拆分为3的25次方与3的25次方相乘只原创 2020-12-17 17:08:50 · 1550 阅读 · 1 评论 -
HDU 2035 :人见人爱A^B (C语言)
题目:题目要求我们求出原创 2020-12-17 16:41:39 · 795 阅读 · 1 评论 -
HDU 2033 : 人见人爱A+B (C语言)
题目:这个题目的核心在于如何将秒转换为分钟,如何将分钟转换为小时,以及如何求秒数转换为分钟剩下的秒数和如何求分钟数转换为小时剩下的分钟数秒转换为分钟和分钟转换为小时:minute=second/60hour=minute/60求秒数转换为分钟剩下的秒数和分钟数转换为小时剩下的分钟数:second=second%60minute=minute%60代码案例:#include<stdio.h>int main(){ int i,n,AH,AM,AS,BH,BM,BS,S原创 2020-12-17 12:40:09 · 703 阅读 · 0 评论 -
HDU 2018: 母牛的故事(C语言)
先来看一下题目第一次看原创 2020-12-14 00:26:40 · 634 阅读 · 0 评论 -
冒泡排序法(C语言)
冒泡排序:相邻两个数两两比较,小的数向前移(上浮),大的数向后移(下沉),如同水中的泡泡上浮一般;冒泡排序图示:如果有N个数,则要跑N-1次比较(每跑一次比较就会有一个较大数“沉底”),交换两个数的次数会随着跑的次数越来越多而变少。C语言代码:#include<stdio.h>int main(){ int a[5]={4,3,1,6,0}; int t,i,j; for(i=0;i<5-1;i++)//要跑5-1次 { fo原创 2020-12-10 14:10:50 · 1172 阅读 · 0 评论 -
如何将一个数组A逆序输出到另一个数组B
例子1:#include<stdio.h>int main(){ int a[5],b[5]={1,2,3,4,5}; int i,j; for(i=0,j=5-1;i<5;i++,j--) { a[j]=b[i]; } for(i=0;i<5;i++) { printf("%d\x20",a[i]); } return 0;}输出结果:例子2:#include<stdio.h>int main(){ int i,j,n;原创 2020-12-10 08:39:03 · 2012 阅读 · 0 评论 -
函数的递归调用(斐波那契数列)(求阶乘)
函数的递归调用:自身调用其自身注意:只能直接调用,不能间接调用(F1调用F2,F2又调用F1)循环体都可以写成递归形式下面是斐波那契数列(兔子数列)用函数递归调用的例子无递归调用代码:#include<stdio.h>int fib(int n){ int i; int fn1=1,fn2=1,fn3; for(i=3;i<=n;i++) { fn3=fn1+fn2; fn1=fn2; fn2=fn3; } return fn3;}int main原创 2020-12-07 23:55:06 · 2386 阅读 · 0 评论