C语言
s_meng_
一名正在努力学习前端的快乐崽崽。
欢迎志同道合的朋友和我一起交流,我会在这里分享自己所学到的知识,也算是给自己做的另一份笔记吧,让自己学到的知识能得到一个输出。我也希望有和我一样正在学习的朋友一起交流,能够一起加油打气,学习是枯燥的,但分享不是,期待你与我一起分享自己所学的。
若你想和我交流,可以加我的联系方式:
微信:tuan-zi-1314
Q Q:1419148453
邮箱:mneg.20200606@gmail.com
展开
-
蓝桥杯第12届国赛真题
今天是蓝桥杯国赛,蓝桥杯比赛结束,对于C语言也就可以放下了,专心来搞得我的网页设计了。下面是蓝桥杯国赛的题,感兴趣的可以自己做一下。原创 2021-06-05 17:02:56 · 6459 阅读 · 1 评论 -
C语言蓝桥杯——走方格——经典DFS问题
解题思路首先将偶数行和列设置为障碍,将之无法访问,然后就是用DFS来测试所有的路线,输出所有的路线。#include <stdio.h>int n, m;int count = 0;int a[31][31]; //0表示为访问, 1表示访问, 2表示障碍 int xx[2] = {1, 0}; // 表示移动方向 右 下 int yy[2] = {0, 1};void init() { // 将偶数行和列设置为障碍, 将之无法访问 int i, j; a[1][1].原创 2021-05-12 23:32:50 · 1194 阅读 · 2 评论 -
C语言蓝桥杯玩具蛇——经典DFS算法
解题思路将A遍历放在每一个位置,以这个点展开,遍历数组中这个点有多少种摆法,进行统计次数即可。#include <stdio.h> int a[4][4]; //0表示为访问, 1表示访问 int count = 0;int xx[4] = {0, 1, 0, -1}; //移动方向 上 右 下 左 int yy[4] = {-1, 0, 1, 0};void init() { int i, j; for(i = 0; i < 4; i++) { for(j = .原创 2021-05-12 23:05:12 · 383 阅读 · 4 评论 -
C语言经典八皇后问题——DFS,六皇后求解
题目描述一个如下的 6 \times 66×6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列 2 4 6 1 3 5 来描述,第 i 个数字表示在第 i 行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6列号 2 4 6 1 3 5这只是棋子放置的一个解。请编一个程序找出所有棋子放置的解。并把它们以上面的序列方法输出,解按字典顺序排列。请输出前 33个解。最后一行是解的总个数。输入原创 2021-05-11 23:00:53 · 5298 阅读 · 16 评论 -
蓝桥杯迷宫——DFS
下午看了一个DFS的视频,学会了迷宫的解决方法,下面给大家详细的说明一下:代码内有详细的注释,编程小白也能看明白:#include <stdio.h>int n, m, t, i;int count = 0;int SX, SY;int FX, FY;int a[50][50]; //0表示未访问,1表示访问, 2表示障碍// 表示可以移动的4个方向 int xx[4] = {0, 1, 0, -1};int yy[4] = {1, 0, -1, 0};int dfs(原创 2021-05-10 22:10:37 · 257 阅读 · 0 评论 -
蓝桥杯朋友——C语言
朋友在社交的过程中,通过朋友,也能认识新的朋友。在某个朋友关系图中,假定A和B是朋友,B和C是朋友,那么A和C也会成为朋友。即,我们规定朋友的朋友也是朋友。现在,已知若干对朋友关系,询问某两个人是不是朋友。请编写一个程序来解决这个问题吧。 输入格式:第一行:三个整数n、m、p(n,m,p≤5000)分别表示有n个人,m个朋友关系,询问p对朋友关系。接下来m行:每行两个数Ai,Bi(1≤Ai,Bi≤N),表示Ai和Bi具有朋友关系。接下来p行:每行两个数,询问两人是否为朋友。 输出格式:输出共p行,每行一个原创 2021-05-09 22:45:44 · 468 阅读 · 0 评论 -
蓝桥杯合根植物——C语言
合根植物蓝桥杯真题:合根植物 w星球的一个种植园,被分成mn个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗? 输入:第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1<m,n<1000)。接下来一行,一个整数k,表示下面还有k行数据(0<k<100000)。接下来k行,每行两个整数a,原创 2021-05-09 22:43:10 · 249 阅读 · 2 评论 -
蓝桥杯相乘——C语言
试题D:相乘本题总分:10分 【问题描述】小蓝发现,他将1至1000000007之间的不同的数与2021相乘后再求除以1000000007的余数,会得到不同的数。小蓝想知道,能不能在1至1000000007之间找到一个数,与2021相乘后再除以1000000007后的余数为999999999。如果存在,请在答案中提交这个数;如果不存在,请在答案中提交0。 【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。//这道题非原创 2021-05-09 22:38:57 · 988 阅读 · 3 评论 -
C语言阶乘计算——蓝桥杯
阶乘计算题目描述:输入一个正整数n,输出n!的值。其中n!=123*…*n。 算法描述:n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。输入解释:输入包含一个正整数n,n<=1000。输出解释:输出n!的准确值。输入样例: 10输出样例: 36288原创 2021-05-09 22:36:33 · 320 阅读 · 1 评论 -
C语言蓝桥杯第十二届——相乘
试题 D:相乘本题总分:10 分【问题描述】小蓝发现,他将 1 至 1000000007 之间的不同的数与 2021 相乘后再求除以1000000007 的余数,会得到不同的数。小蓝想知道,能不能在 1 至 1000000007 之间找到一个数,与 2021 相乘后再除以 1000000007 后的余数为 999999999。如果存在,请在答案中提交这个数;如果不存在,请在答案中提交 0。【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个原创 2021-05-08 23:04:56 · 1400 阅读 · 2 评论 -
C语言蓝桥杯——阶乘计算
阶乘计算题目描述:输入一个正整数 n,输出 n!的值。其中 n!=123*…*n。算法描述:n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组 A 来表示一个大整数 a,A[0]表示 a 的个位,A[1]表示 a 的十位,依次类推。将 a乘以一个整数 k 变为将数组 A 的每一个元素都乘以 k,请注意处理相应的进位。首先将 a 设为 1,然后乘 2,乘 3,当乘到 n 时,即得到了 n!的值。输入解释:输入包含一个正整数 n,n<=1000。输出解释:输出原创 2021-05-08 22:57:44 · 668 阅读 · 1 评论 -
C语言实现约瑟夫环
话不多说,直接上代码。回来补上问题:约瑟夫问题是个有名的问题:M个人围成一圈,从第一个开始报数,第N个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3。当然,这个一共有几个人,剩下多少个你自己决定,我的是30个人,剩下15个人就行,so,我的count==15时,我跳出了循环。int a[100] = {0};//约瑟夫环 (数组) main() { int m, n, i = 0,k = 0;//m人,第n出局 int count = 0原创 2021-05-02 22:48:46 · 411 阅读 · 0 评论 -
C语言实现,找出迷宫起点到终点的最短路径,最详细的DFS教程
因为蓝桥杯要去参加国赛了,现在要开始备考了,下午学了下DFS的算法,然后输出一下我学到的。求出迷宫中的最短路径:一共有两个,一个是未改进的,但是更容易理解,理解了第一个之后,可以更好的理解第二个优化的。尝试移动的方向,当开始移动时,坐标的变化。未优化/* 输入m行,n列数据, p,q表示终点, min表示最短路径*/int m, n, p, q;int min = 999999999;int a[100][100]; //1表示空,2表示障碍int v[100][100]; //原创 2021-05-02 22:32:04 · 3960 阅读 · 4 评论 -
二分查找法
若有错误,感谢大佬能够指正#include <stdio.h>//二分查找法 int binary_search(int arr[], int k, int sz){ int left = 0; int right = sz - 1; while(left <= right) { int mid = (left + right) / 2; //说明所需查找的元素在中间元素的右边,新的右边的下标为中间下标,需要+1,右边下标不动 if(arr[mid] &l原创 2021-01-13 19:04:37 · 56 阅读 · 0 评论 -
调用函数判断是否是闰年
#include <stdio.h>//判断条件int is_leap(int y){ if(y % 4 == 0 && y % 100 != 0 || y % 400 == 0) { return 1; } else { return 0; }}int main(){ int year; printf("请输入要判断的年份:"); scanf("%d", &year); if(is_leap(year) == 1) {原创 2021-01-13 12:27:59 · 3446 阅读 · 0 评论 -
输入一个数,判断是否是素数 // 输出从100-200之间的素数
//输入一个数,判断是否是素数#include <stdio.h>int main(){ int i; int x; int j = 0; printf("请输入一个数:"); scanf("%d", &x); for(i = 2; i <= x / 2; i++) { if(x % i == 0) { j = 1; } } if(j == 1) { printf("%d不是素数\n", x); } else {原创 2021-01-12 22:18:42 · 1065 阅读 · 0 评论 -
用指针逆序输出数组中的元素
方法一 用while循环逆序输出数组元素#include <stdio.h>#define N 6main(){ int arr[] = { 56, 66, 57, 77, 58, 88 }; int * pi1; int * pi2; int i; pi1 = arr;//首元素的地址 pi2 = arr + N - 1;//尾元素的地址 //交换元素的位置 while(pi1 < pi2) { int t = 0; t = *pi1;原创 2021-01-11 20:59:53 · 4899 阅读 · 2 评论 -
删除数组其中一个元素 并添加一个元素
#include <stdio.h>main(){ int arr[] = {88, 77, 44, 66, 99}; int count;//数组的长度 int i,j; int deletenum; //输入要删除的数字 int deleteposition = -1;//要删除数字的下标 //int judgment = -1;//判断条件 int insertnum; //要插入的数字 //从大到小输出,冒泡排序 count = sizeof(arr.原创 2021-01-06 23:16:45 · 410 阅读 · 0 评论 -
数组元素的对比
#include <stdio.h>void compare(int arr[], int sz){ //_Bool 只有两个值,1/0,真/假 _Bool flag = 0; //定义要输入的变量 int number,j; printf("请输入一个数字:"); scanf("%d",&number); //拿输入的数字与数组中的元素进行对比 for(j = 0; j < sz; j++) { if(number == arr[j]).原创 2021-01-04 23:16:29 · 1625 阅读 · 0 评论 -
学生成绩从低到高使用冒泡法排列
// C99标准,数组定义可采用变量#include <stdio.h>main(){ int n,i,j; printf("请输入学生的数量:"); scanf("%d",&n); int a[n]; printf("请输入学生的成绩:\n"); for(i = 0; i < n; i++) { scanf("%d",&a[i]); } for(i = 0; i < n - 1; i++) { for(j = 0;原创 2021-01-02 22:39:04 · 1484 阅读 · 1 评论 -
冒泡排序法
#include <stdio.h>void maopao(int a[],int sz)// 传参时需要将整个位置传参过来 { int i,j; for(i = 0; i < sz - 1; i++) { for(j = 0; j < sz - 1 - i; j++) { int t = 0; if(a[j] > a[j + 1]) { t = a[j]; a[j] = a[j + 1]; a[j + 1] =原创 2021-01-02 22:42:45 · 81 阅读 · 0 评论