
笔记
L-阿烽
被代码摧残的菜鸟
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法入门——排序算法(快速排序)
快速排序的思想是: 找到一个基准数,并将其余的数与基准数依次进行比较,将比基准数大的数放在哨兵的一边,再将小于基准数的数放在另一边(等于基准数的数可放在哨兵的任意一边)。 基准数数就是一个用来参照的数。举个例子来展现它的作用:我们现在对“6 1 2 7 9 3 4 5 10 8”这10个数进行排序。 首先我们随便找一个数作为基准数,为了方便,我们就讲第一个数 6 作为基准数。接下来,需要将这个序列中所有比基准数大的数放在 6 的右边,比基准数小的数放在 6 的左边,得到: 3 1 2 5 4 6 9 7原创 2021-09-02 20:07:42 · 256 阅读 · 0 评论 -
算法入门——排序算法(冒泡排序)
冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。 举个例子: 对12 21 34 18 13这五个数进行从大到小的排序。简而言之,越小的数应该越靠后。虽然这看起来是一句废话,但是解决冒泡排序的问题的关键就在这一句话上。 首先我们先比较前两位的大小,第一位是12,第二位是21,进行比较之后12比21要小,所以我们需要将两者交换位置。交换之后得到 21 12 34 18 13。 按照刚才的方法我们在对第2位和第3位进行比较,很明显12小于34,所以要进行交换得到21 34..原创 2021-08-16 09:22:25 · 220 阅读 · 0 评论 -
2013年 第四届蓝桥杯C/C++ B组预赛 第三题 第39级阶台阶
题目标题: 第39级台阶 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢? 请你利用计算机的优势,帮助小明寻找答案。 要求提交的是一个整数。 注意:不要提交解答过程,或其它的辅助说明文字。 分析: 这个题可以使用递归的思想来解决,并且要找到结束递归的条件,就是台阶数大于39原创 2021-01-26 22:13:52 · 564 阅读 · 0 评论 -
数字的处理与判断:求位数、顺序输出位数、逆序输出位数。
题目: 输入一个整数,要求: 1、求出它是几位数 2、顺序输出每一位数字 3、按逆序输出各位数字。 样例输入: 12345 样例输出: 5 1 2 3 4 5 5 4 3 2 1 算法步骤: 1、首先,我们我们将输入的整数进行除以10,若结果为0则证明位数为1,若不为10,则继续进行以上操作,直至为0。 代码如下: for(i=0;n!=0;i++) {n=n/10;} return i; 此时 i 就是位数。 2、其次(顺序输出),我们通过 i 求出10的 i 次方,原创 2021-01-21 21:34:13 · 843 阅读 · 0 评论 -
题目1004:母牛的故事
题目 输入 输出 样例输入 2 4 5 0 样例输出 2 4 6 问题分析: 首先,我们可以列出前四年中每一年的母牛头数,因为只有在小母牛出生后第四年时才能生小母牛,所以从第n(n>=5)年开始,第n年母牛的数量=第n-1年的母牛数量+第n-3年的母牛数量。因为第n年的母牛数量等于前一年的数量加上能够生产的母牛数量。 C代码 #include<stdio.h> main() { int a[55]={1,1,2,3,4}; //a[0]不需要可以随便赋值 int n,i,j=0,p,原创 2021-01-17 22:58:13 · 433 阅读 · 0 评论 -
请用指针编程实现: 将数组中的21个整数按相反的顺序存放。
#include<stdio.h> #define n 21 int H(int *Q); main() { int i, a[50], *p=a; printf(“输入的数:”); for(i=0;i<n;i++) scanf("%d “,p++); p=a; H§; p=a; printf(“相反顺序存放后:”); for(i=0;i<n;i++) printf(”%d ",*p++); } int H(int *Q) { int i, t, N=(n-1)/2, *L; L=Q原创 2020-09-23 13:56:20 · 610 阅读 · 2 评论 -
数组参数:交换数组中最大值和最小值的位置
题目:定义一个函数,功能:实现数组中最大值和最小值交换位置。 解题思路:定义一个数组参数的函数,首先要先找到数组元素中的最大值和最小值,然后用我们常用的方法来将最大值和最小值进行转换。最后在main函数中调用所定义的f函数。 #include<stdio.h> int f(int x[], int n) //定义数组参数 { int i, m=0, j=0; for(i=1;i<n;i++) { if(x[i]>x[m]) //找出最大值 {m=i;} if(原创 2020-05-31 23:42:23 · 19784 阅读 · 2 评论 -
c语言 组合的加法
可用嵌套调用 利用定义函数求s1=C(n,2)+C(n,4)+……+C(n,n),s2=C(n,1)+C(n,3)+……+C(n,n-1) (组合问题,s1为偶数和,s2为奇数和) #include<stdio.h> float c(int n, int m); //对c函数作声明 int g(int n); //对g函数作声明 float c(int n, int m) //定义c函数 { float s;原创 2020-05-22 20:03:41 · 1148 阅读 · 2 评论 -
c语言矩阵的乘法
c语言矩阵的乘法 #include<stdio.h> int main() { int a[2][4], b[4][3], c[2][3]; int i, j, k, sum; 在这里插入代码片 printf(“输入一个2×4的矩阵:\n”); for(i=0;i<2;i++) //处理矩阵a中的一行中各元素 for(j=0;j<4...原创 2020-05-08 10:59:52 · 51376 阅读 · 10 评论