C语言
文章平均质量分 56
shadowh8
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言实现人机三子棋
用C语言实现三子棋,自己思路是先让以菜单的形式让玩家选择进入游戏或者退出。下棋时玩家以坐标的形式将棋子放在定义的二维数组里,用o表示,电脑用随机函数将棋子放入棋盘,用x表示。每次玩家和电脑放入后都判断是否已经满足规则。1、首先设计菜单,编写主函数。#include "game.h"void menu() //菜单{ printf("#############################...原创 2018-04-20 17:38:27 · 690 阅读 · 0 评论 -
数据结构中二叉搜索树相关操作
二叉搜索树,顾名思义,就是用来方便搜索的二叉树。 其定义有以下要点 : 一、由于是二叉树,采用链式结构。 二、二叉搜索树中存储的信息key不能重复。 三、二叉搜索树中的左子树全都比根结点小,右子树全都...原创 2018-08-02 14:36:23 · 186 阅读 · 0 评论 -
数据结构中二叉树相关操作
二叉树是一种重要的数据结构,关于二叉树的相关操作尤为重要,其中主要操作大概分为:建树,遍历,返回二叉树的相关参数。 其中较难的是非递归遍历二叉树,直接给出代码读者若有疑问欢迎随时指点: #pragma once #include "Queue.h"#include "Stack.h"#include <stdio.h>#include <std...原创 2018-07-30 19:10:48 · 146 阅读 · 0 评论 -
数据结构中单链表的基本操作
在数据结构中,链表的相关操作尤为重要,链表有单向链表和双向链表。 此篇博客主要向大家介绍单链表的相关操作,其中包括链表的增删改查,头删尾删,头插尾插。 在链表中由于需要不断的扩充或者减小结构,因此将链表定义为动态内存,使用malloc来满足这一操作。#include <stdio.h>#include <windows.h>#include <assert.h&...原创 2018-07-02 11:58:16 · 528 阅读 · 0 评论 -
C语言中的传址调用和传值调用
在C中,我们调用函数几乎都要传递参数,传递参数主要分为两种: ①传值调用 ②传址调用。 两种方法用到的地方都比较多,相信大多人都知道如何使用。 但是更深层次的原因,我们可以一起试着探寻。下面是一段代码,用来交换两个数,分别用了传值调用和传址调用。 结果发现程序运行后,第一个函数没有交换。第二个函数成功交换。 #include <stdio.h>#include <wi...原创 2018-06-16 15:46:23 · 652 阅读 · 0 评论 -
C语言之结构体
在C语言中,有一种类型听着很任性,叫做自定义类型。顾名思义,这种类型是程序员自己定义的一种类型,它和数组很相似,但也有一些区别。自定义类型包含以下几种:①结构体 ②枚举 ③联合 结构体就是将具有不同或相同的类型放在一起的聚合类型。可能听着有些像顺口溜,上一段代码,捋一捋。struct Peo{char name[20];int age;char sex[5];char id[20]...原创 2018-05-30 23:17:38 · 178 阅读 · 0 评论 -
C语言指针相关解析
在C语言中除了一级指针和二级指针,还有一些比较常用但又比较拗口的指针类型。比如:指针数组和数组指针。它们的名称只是前后顺序不一样,却有着千差万别,容我向大家徐徐道来。先看两种定义:int *p[5], int(*p)[5]。第一个是指针数组,由于"[ ]"的优先级高于“*”,所以p先和"[ ]"结合,构成了数组,后和"*"结合,成了指针数组。指针数组依然是数组,只不过它里面存放的是指针。如图:...原创 2018-05-24 18:59:57 · 240 阅读 · 0 评论 -
调整数组使奇数全部都位于偶数前面
一个数组中,使奇数全部位于偶数前面。 刚开始要实现这个问题时,只定义了一个数组arr[],在运行时发现只有一个数组时,在将奇数放在偶数前面会覆盖数组的值,因此定义了第二个数组arr1[],来存放修改后的值。 #include<stdio.h>#include <windows.h>void change(int arr[],int arr1[],in...原创 2018-05-03 20:23:01 · 167 阅读 · 0 评论 -
编程实现字符串相关函数
在C语言中,字符串是以‘\0’结尾的,这一原因也导致了字符串相关操作比较繁琐,比如字符串拼接,只能通过调用函数来得以实现,没有整型相关计算便捷。但是为了更好的理解这些字符串函数的本质,我们可以自己编写一些程序,让自己能够更透彻的理解字符串相关操作。毕竟有些事情,如果我们改变不了,尝试着去适应也是一种积极的生活态度!编写的字符串相关函数有:1、my_strcpy (字符串拷贝) ...原创 2018-05-27 13:08:44 · 308 阅读 · 0 评论 -
基于C语言实现一个通讯录
通讯录满足一下要求:通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 通讯录有一下功能:1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人 函数头文件,为了方便通讯录用结构体来存储。#ifndef __LIST_H_#define __...原创 2018-06-03 12:57:21 · 336 阅读 · 0 评论 -
纯C编写简单扫雷游戏
扫雷游戏从windows系统诞生,就出现在了我们的电脑中。 其实微软公司开发扫雷游戏的目的是帮助用户适应鼠标的使用。同一类游戏还有蜘蛛纸牌。小学时上微机课,玩扫雷和蜘蛛纸牌都能玩一节课。 不禁感叹新事物带给人的新鲜感。 突发奇想,既然是编程语言,那么C语言是不是也可以来开发一款扫雷游戏。 在了解扫雷规则后,着手开始编写程序。虽然有些潦草,但是仿佛又回到了小学时的机房,开心依旧。扫雷规则大致是...原创 2018-05-14 17:23:44 · 872 阅读 · 0 评论 -
用编程实现的逻辑推理面试题
题目:日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。 现在请根据这些信息,写一个程序来确定到底谁是凶手。 以C程序的角度分析一下这道题。 一共有四个人,三个人说了真话,一个人说了假话。 在C语言中真为1,假为0.那么用一个条件语句,当满足和为...原创 2018-05-17 20:01:47 · 2167 阅读 · 0 评论 -
函数调用过程中产生的栈帧
在c语言中编译的程序占用的内存分为一下几个部分: 1、栈区(stack)2、堆区(heap)3、全局区(静态区)(static)4、字符常量区 5、代码区(code)如图所示: 这篇博客主要描述其中的栈区。在函数的调用过程中,要为函数开辟空间,用于本次函数的调用中临时变量保存、现场保护。这块栈空间我们称之为函数的栈帧。先要了解 几个寄存器 : ESP 栈顶寄存器 EBP栈底寄...原创 2018-05-10 20:17:15 · 411 阅读 · 0 评论 -
数据结构中的堆
堆在逻辑上是一颗完全二叉树,一般采用顺序表存储的方式。 当然这里的堆和内存中的堆毫无关系,只不过是名字恰好相同。 其有大堆和小堆之分: 一、大堆:任一结点信息均大于等于它左右孩子的信息,位于堆顶结点的信息最大,从根节点到每个结点路径 上数组元素组成的序列都是递增的。 ...原创 2018-08-02 14:52:49 · 306 阅读 · 0 评论
分享