![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
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 · 194 阅读 · 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 · 171 阅读 · 0 评论 -
2013年 第四届蓝桥杯C/C++ B组预赛 第三题 第39级阶台阶
题目标题: 第39级台阶小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题:如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?请你利用计算机的优势,帮助小明寻找答案。要求提交的是一个整数。注意:不要提交解答过程,或其它的辅助说明文字。分析:这个题可以使用递归的思想来解决,并且要找到结束递归的条件,就是台阶数大于39原创 2021-01-26 22:13:52 · 517 阅读 · 0 评论 -
数字的处理与判断:求位数、顺序输出位数、逆序输出位数。
题目:输入一个整数,要求: 1、求出它是几位数 2、顺序输出每一位数字 3、按逆序输出各位数字。样例输入:12345样例输出:51 2 3 4 55 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 · 759 阅读 · 0 评论 -
题目1004:母牛的故事
题目输入输出样例输入2450样例输出246问题分析:首先,我们可以列出前四年中每一年的母牛头数,因为只有在小母牛出生后第四年时才能生小母牛,所以从第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 · 390 阅读 · 0 评论 -
请用指针编程实现: 将数组中的21个整数按相反的顺序存放。
#include<stdio.h>#define n 21int 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 · 557 阅读 · 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 · 18134 阅读 · 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 · 1035 阅读 · 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 · 50313 阅读 · 10 评论