
C语言
文章平均质量分 68
OnlyGky
欢迎大家去我的掘金博客围观:
https://juejin.cn/user/3034307824470606/activities
展开
-
C语言--结构体与内存对齐准则简单理解
平时基本不涉及这个问题,被问起才发现没那么简单。。。一,结构体:内存中所有类型字节之和#include<stdio.h>struct icd{ int a; char b; double c;};struct cdi{ char a; double b; int c;};struct merge{ char a; cdi c; int b;};in...原创 2018-04-30 15:26:47 · 241 阅读 · 0 评论 -
数据结构---树,堆排序
1.树是指任意两个结点之间有且只有一条路径的无向图,只要没有回路的联通无向图就是树。2.没有父结点的的结点称为根结点,无子结点的称为叶结点。3.二叉树。a,满二叉树:树中每个内部结点都有左右结点,即所有的叶结点都具有相同的深度。b,完全二叉树:如果树内部的结点有右子结点的话就一定有左子结点,则称为完全二叉树,左子结点的编号为2k,右子结点的编号为2k+1.4.堆:一种特殊的完全...原创 2018-09-02 16:11:08 · 245 阅读 · 0 评论 -
C语言-最短路径
最短路径可以是用广度或深度搜索直接暴力破解(不断的重复比较更新),时间复杂的为(n*n),时间复杂度的降低方面有好几种方法,在这里简要介绍两种算法。主要思想:a顶点到b顶点之间的最短距离可以查找是否有c顶点使距离缩小。参数说明:二维数组e[a][b],存储顶点与边之间的关系,表示a点到b点的距离为e[a][b],inf表示无法直接到达 1.Floyd-Warshall法较好理解...原创 2018-06-24 16:18:16 · 22101 阅读 · 0 评论 -
深度优先搜索及广度优先搜索
一.深度优先搜索。1.主要思想:首先以一个未被访问过的顶点作为起始顶点,沿当前顶点走到未被访问顶点,当没有未被访问顶点时,返回上一个顶点,继续访问别的顶点,直到所有的顶点都被访问过。2:主要通过循环及递归来实现。A:输出数n的全排列#include<stdio.h> //以123->132为例 int a[10],book[10],n;//此处设n为3 void dfs(in...原创 2018-06-04 23:23:37 · 189 阅读 · 0 评论 -
C语言的一些知识总结
这段时间开始自己尝试着写学生信息管理系统,总结一下中间还有上课遇到的一些问题一、、共用体(union)与大端序小端序emmmmm先总结一下共用体的主要知识点1,共用体中的不同元素占用同一内存,既起始地址相同。2.共用体中内存为最长成员的长度。3,共用体变量可被赋值给任一成员,但一次只能赋一种值,新值会覆盖旧值。下面的例子是在网上看到的,还是挺有用的#include<stdio.h>//...原创 2018-05-21 21:48:07 · 258 阅读 · 0 评论 -
链表的基本应用二及总结
学链表也学了有一段时间了,在这里先总结一下1.链表的中头结点相当重要,判断是否有值或为空相当重要,建议头结点一般设置为不赋值2.每次操作一般都是从移动元素的上一个结点来操作,这也是头结点为建议不赋值的原因3.链表的每次指向变化最好还是画图更加清晰易懂删除两条链表重复的数我的思路就是用较长链表遍历较短链表,再创一条链表把不重复的数存储起来。。。#include <stdio.h>...原创 2018-04-27 22:01:19 · 317 阅读 · 2 评论 -
C语言---链表的创建
1.代码如下链表创建有多种方法,这是较好理解的一种尾插法#include<stdio.h> #include<stdlib.h> struct node { int data; struct node *next; }; int main(void) { int n,i,j,k; scanf("%d",...原创 2018-04-10 17:05:21 · 355 阅读 · 0 评论 -
NYOJ--C语言---Fibonacci数递归迭代两种解法
题目描述无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为F(n)=1 ...........(n=1或n=2)F(n)=F(n-1)+F(n-2).....(n>2)现要你来求第n个斐波纳奇数。(第1个、第二个都为1)输入第一行是一个整数m(m<5)表示共有m组测试数据 每次测试数据只有一行,且只有一个整形数...原创 2018-04-09 19:49:32 · 595 阅读 · 0 评论 -
C语言---快速排序
1.以下代码是在书上看到的,加上自己的理解。#include<stdio.h>int a[101];void quictsort(int left,int right){ int i,j,t,temp; if(left>=right)//极为重要,判断退出函数的主要条件 return; i=left; j=right; temp=a[left];//确定最左边...原创 2018-04-09 16:12:59 · 139 阅读 · 0 评论 -
C语言---输出三角形字符阵列
输出三角形字符阵列本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。输入格式:输入在一行中给出一个正整数n(1≤n<7)。输出格式:输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。输入样例:4输出样例:A B C D E F G H I J#include<stdio.h>int main(int argc, c...原创 2018-04-08 23:28:37 · 18098 阅读 · 2 评论 -
NYOJ---ASCII码排序
题目描述输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。输入第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。输出对于每组输入数据,输出一行,字符中间用一个空格分开。样例输入复制2qweasd样例输出复制e q wa d s#include<stdio.h> #include<s...原创 2018-04-08 22:58:33 · 238 阅读 · 1 评论 -
C语言---初识递归///看了这么久的递归,终于会用了~~
这是上机课老师出的一道题目,题较简单,刚开始使用循环加数组写出来,后来想到这种先得后排的方法可以用递归来做。。。。。输出整数各位数字本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。输入格式:输入在一行中给出一个长整型范围内的非负整数。输出格式:从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。输入样例:123456输出样例:1 2 3 4 5 6#includ...原创 2018-05-16 17:04:29 · 2719 阅读 · 3 评论 -
C语言---链表的基本应用
1.链表的插入//插入一个确定得数#include<stdio.h>#include<stdlib.h>struct node{ int data; struct node *next;};int main(void){ int n,i,j,k; scanf("%d",&n); struct node *head,*p,*q,*t; head...原创 2018-04-15 19:05:42 · 513 阅读 · 1 评论 -
水题总结NYOJ74,1094,60,975,111,833
做题中暴露的问题还是有很多:1.题目中输入中的要求是最应该要注意的,有时候从要求和范围可以判断出题目的正确做法。2.字符串的输入问题还是有很多不足,在做题的时候会出现很多不太清楚的地方,如下文的奖学金例子,当时的空格问题让我懵了很久在这里顺便就字符串的输入输出应注意的点做个总结,可能有些不足,以后会随时补充scanf("%s",a),最应注意的就运到空格回车输入就终止需要强调一点,scanf("%...原创 2018-04-27 11:54:38 · 258 阅读 · 0 评论 -
C---队列,栈的实现
栈和队列很早以前就知道有这东西了,兜兜转转也终于走到了这一步,都不难理解,总的来说可以看成//链表头插法和尾插法的变相使用//,但实现起来也有很多要注意的点一:栈(后进先出,只有一个操作点)栈的实现:顺序存储结构和链式存储结构1:顺序栈:使用数组实现#include<stdio.h> //输出为:0,1,2,3,4,5,6,7,8,9#include<stdlib.h>...原创 2018-05-04 20:53:19 · 189 阅读 · 0 评论 -
C语言---关于关键字const与static的简单理解
1.const:限定符的一种,个人对const的浅显理解就是一直将const限定的对象看作常量较好理解,声明变量和数组时较简单,在这里主要讲讲在指针和形参中使用const,简单来说const放在*左侧,指针指向的数据不能改变,放在右侧,指针指向不能改变。char y[]="helloworld",x[]="2018"; char *const p1=y;//可看作p1的地址被const变为常量,...原创 2018-05-04 20:51:41 · 255 阅读 · 0 评论 -
C语言入门水题总结2
小光棍数时间限制:1000 ms | 内存限制:65535 KB难度:1描述最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数。他已经知道了第一个小光棍数是471,471的三次方是104487111,现在他想知道第m(m<=10000000000)个小光棍数是多少?输入有多组测试数据。第一行一个整数n,表示有n组测试数据。接下来的每行有...原创 2018-05-26 11:26:42 · 469 阅读 · 0 评论 -
Java,C实现约瑟夫环,一元多项式运算器
1 约瑟夫环问题描述:(初始密码为m)约瑟夫环问题是循环链表的经典应用:具体描述如下:n 个人围成一个圆圈,首先第 1 个人从 1 开始一个人一个人顺时针报数,报到第 m 个人,令其出列。然后再从下一 个人开始从 1 顺时针报数,报到第 m 个人,再令其出列,…,如此下去,求出列顺序。使用C实现#include<stdio.h>#include<stdlib.h&...原创 2018-09-20 16:29:27 · 271 阅读 · 0 评论