c语言
文章平均质量分 57
XHfight
心向阳光, 绚丽绽放
展开
-
位运算(二):8bit数据指定位置0或置1操作
一、要求: 功能: 实现对一个8bit数据(unsigned char类型)的指定位(例如第n位)的置0或者置1操作,并保持其他位不变。 函数原型:void RightLoopMove(unsigned char *p_data, unsigned char position, int flag) 函数参数说明:p_data是指定的原数据,positio原创 2016-05-30 14:58:46 · 13088 阅读 · 1 评论 -
printf函数的返回值
printf的返回值是int型数据,表示打印的字符数#includeint main(){ int a = 43; int i = 0; printf("%d\n",printf("%d",printf("%d",a))); printf("%d\n",printf("%d\t",a)); printf("%d\n",printf("hello world")); return原创 2016-06-01 00:04:55 · 723 阅读 · 0 评论 -
位运算(一):二进制中1的个数
一、题目:求二进制中1的个数 请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。 例如:10 二进制表示为:1010 ,该函数输出二二、最初思路: 先检查二进制位最右边一位是否为1,将二进制位右移一位,这时最右边一位变为原来的倒数第二位,再右移一位,依次循环运算,直到此数变为0。 怎样检查二进制位最右边一位是否为1呢原创 2016-05-29 23:22:43 · 2600 阅读 · 0 评论 -
排序(二)之选择排序SelectSort
一、选择排序的思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。原创 2016-06-01 18:59:20 · 552 阅读 · 0 评论 -
静态顺序表实现简单的通讯录
一、通讯录实现要求:实现一个通讯录;通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:1. 添加联系人信息2. 删除指定联系人信息3. 查找指定联系人信息4. 修改指定联系人信息5. 显示所有联系人信息6. 清空所有联系人7. 以名字排序所有联系人 二、基本思路: 根据题目的要求,我选原创 2016-06-02 14:01:18 · 4478 阅读 · 0 评论 -
排序(三)之直接插入排序Straight Insertion Sort
一、直接插入排序的思想:原创 2016-06-02 13:26:44 · 909 阅读 · 0 评论 -
[c语言]单链表的实现
一、基础知识:链表(线性表的链式存储结构)(1)特点:逻辑关系相邻,物理位置不一定相邻。(2)分类: a.不带头节点650) this.width=650;" width="983" height="135" title="$KI3SY_AD]I]G(@$7H6]8DV.png" style="width:707px;height:86px;" alt="wKioL1cd_omg3yZ-A原创 2016-06-01 00:05:27 · 923 阅读 · 0 评论 -
C/C++函数名称修饰规则及extern "C"的作用
一、函数名称修饰规则由于c语言不支持函数重载,而c++语言支持函数重载,所以c和c++的函数名称修饰规则是不相同的。 以下面这个Add函数为例,来探讨一下c和c++语言的函数名称修饰规则。int Add(int x, int y){ return x+y;}c语言的函数名称修饰规则: [window系统下vs2010]:(在映射文件.map中可以查看,需要右击当前原创 2016-06-26 19:50:13 · 4466 阅读 · 0 评论 -
static 关键字的用法(c语言)
一、两个重要作用:1.修饰变量(1)作用域:a.静态全局变量:仅限于变量被定义的文件,从定义处开始到文件结尾处结束。(其他文件即使用extern声明也无法使用)要想在定义之前使用它,就必须在之前加extern ***语句。b.静态局部变量:仅在定义变量的局部作用域内。(2)生命周期:整个程序的存在周期。(3)存储空间:静态区(4)只被初始化一次下面,来看看下面这段程原创 2016-06-13 00:03:29 · 805 阅读 · 0 评论 -
链表面试题:判断链表是否相交(c语言)
一、问题描述:判断两个链表是否相交,若相交返回交点,否则返回空。由上图我们可以得出链表相交的两个结论:1.两链表相交,第一个相同的结点为链表的交点;2.两链表相交,从交点向后的所有结点都相同(合二为一)。二、解决思路方法一:直观法思路:依次判断第一个链表中的每个结点是否在第二个链表中出现。时间复杂度:O(Length(List1)*Length(List2))原创 2016-06-13 14:58:00 · 3406 阅读 · 2 评论 -
C语言小项目--贪吃蛇游戏
一、贪吃蛇小游戏简介: 用上下左右控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,也不能咬到自己的身体,等到了一定的分数,就能过关。 二、函数框架三、数据结构typedef struct Snake{ size_t x; //行 size_t y; //列 struct Snake*原创 2016-06-15 00:48:44 · 17453 阅读 · 10 评论 -
整型数组里只出现一次的数字--[c语言笔试题]
找出数组内只出现一次的数字,是一系列的笔试题,来考察大家对位运算的掌握,下面我们从最简单的开始来看看吧!一、题目:一个整型数组里只有一个数字出现了一次,其余数字都出现了两次,请写程序找出出现了一次的数字。 如:{1,2,1,2,3},找出1看到这个题目时,我们容易想到异或运算的性质。异或运算相同为0,相异为1,则:a^a = 0; (1)0^a = a; (2)a^b^a原创 2016-06-19 15:00:54 · 4607 阅读 · 2 评论 -
c语言字符串操作函数
字符串:由零个或多个字符组成的有限序列。在C语言库函数中,对字符串操作有一系列的函数。下面我们就自己模拟实现一些应用比较广泛的字符串操作函数。1.字符串拷贝函数原创 2016-07-19 17:40:32 · 645 阅读 · 0 评论 -
【c语言】函数指针的用途
很多初学者学函数指针的时候都会想着学这个到底有什么用嘛,搞这么复杂。哈哈,其实它的存在必然有它的用途喽。下面介绍一下它的两个主要用途:(1)转移表 (利用函数指针数组实现)(2)回调函数机制 (利用函数指针实现,典型应用:qsort快排)下面我们就通过使用来熟悉一下它的这两个用途吧。1.转移表的应用简单计算器的实现#include #include原创 2016-08-04 23:19:13 · 2283 阅读 · 0 评论 -
C语言求解素数(质数)的优化:打印100-200之间的素数
打印100-200之间的素数#include#includeint main(){ int i,j; for(i=101;i<200;i+=2) //偶数不可能是素数 { for(j=2;j<=sqrt(i);j++)//平方根效率更高 { if(i%j==0) break; } if(j>sqrt(i)) printf("%d\t",i);原创 2016-06-01 00:04:53 · 724 阅读 · 0 评论 -
printf函数的使用
#includeint main(){ int i = 10; int j = 20; char p[] = "Hello World!"; char *q = &p; printf("%d\n",i); printf("i = %d j = %d\n",i,j); printf("Hello Worl!\n"); printf("%s\n",q); printf(q)原创 2016-06-01 00:04:50 · 457 阅读 · 0 评论 -
排序(一)之冒泡排序Bubble Sort
一、冒泡排序的算法思想: 直接讲思想可能不好理解,咱们先看看下面这个例子吧。 有10个数字的原顺序如下,现要将它从小到大排列,用冒泡排序的思想怎么做呢? 原序列:1 9 3 0 6 5 8 2 4 7原创 2016-05-31 19:33:42 · 1106 阅读 · 0 评论 -
合并两个有序链表
一、问题:合并两个有序单链表,合并后的单链表依然有序。二、分析:1.有如下两个有序链表str1和str2 2.合并后的新链表的头结点定义为newpHead,采用摘结点法: 三、代码实现(c语言)12345678910111213原创 2016-05-31 23:38:28 · 597 阅读 · 0 评论 -
约瑟夫环
一、典故: 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是商量了一个自杀方式: 41个人排成一个圆圈,由第1个人 开始报数,每数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从,J原创 2016-06-01 00:05:29 · 457 阅读 · 0 评论 -
初级版迷宫问题(栈的应用)
/* (一)初级迷宫问题: 0:代表通 1:代表不通 求迷宫的通路 (二)步骤: 1.创建迷宫 * 从文件中读取迷宫 * 开辟二维数组存放迷宫 2.寻找通路 * 检查某位置是否为通 * 出口位置判断 * 走过的路用2标记 * 利用栈回溯 (三)问题 1.解决回溯中重复探测:递归 2.最优解:迷宫的最短通路原创 2016-06-01 00:05:24 · 745 阅读 · 0 评论 -
数据结构:模板实现栈和队列
(一)模板实现栈#pragma oncetypedef unsigned int size_t;template class Stack{public: Stack() :_array(NULL) ,_top(-1) ,_capacity(0) {} ~Stack() { if(_array) { delete[] _array; } }publ原创 2016-06-01 00:05:21 · 511 阅读 · 0 评论 -
error C2533构造函数不能有返回类型
今天写程序时,一直出现这个错误,好头疼啊!!! error C2533: “BigData::{ctor}”: 构造函数不能有返回类型 BigData::BigData(INT64 value) : _value(value){} 这个构造函数写的是正确的,没有返回值呀!!那为什么会报错呢?? 这个问题困扰了我好几个小时,最后实在没办法,上网查了一下,发现竟然是一个很小的“;”原创 2016-06-01 00:05:18 · 853 阅读 · 0 评论 -
注释转换
AnnotationConversion.h# pragma once#define _CRT_SECURE_NO_WARNINGS 1#include #include #include typedef enum State{ c_BEGIN, c_END}State;typedef enum RunState{ SUCCESS, FILE_WRONG, NO_MAT原创 2016-06-01 00:05:13 · 379 阅读 · 0 评论 -
静态和动态顺序表的实现(c语言)
(一)静态顺序表的实现 SeqList.h文件 #pragma once#define MAX_SIZE 1000typedef int DataType;typedef unsigned int size_t;typedef struct SeqList{ DataType array[MAX_SIZE]; size_t size;}SeqList; voi原创 2016-06-01 00:05:10 · 1200 阅读 · 0 评论 -
C语言:折半查找
//折半查找#include int dichotomy(int m,int arr[],int left,int right){ int mid; while(left <= right) { mid = left - (left - right)/2; if(m < mid) right = mid - 1; else if(m > mid) left =原创 2016-06-01 00:05:07 · 747 阅读 · 0 评论 -
C语言 猜数字游戏
#include #include #include void guess(){ int input = 0; int ret; srand((unsigned int)time(NULL)); ret = rand() % 100; printf("请输入0-100内的数字\n"); do { scanf("%d",&input); if(input < ret)原创 2016-06-01 00:05:04 · 879 阅读 · 0 评论 -
C语言错误:missing ';' before 'type'
C语言程序必须只能在开头定义变量,C++在哪都能定义变量。 所以把变量定义放在开头就好了!原创 2016-06-01 00:05:01 · 2322 阅读 · 0 评论 -
编写C语言程序求两个数的最大公约数
//求两个数的最大公约数#include int main(){ int num1,num2; int temp; scanf("%d%d",&num1,&num2); //核心算法 while(num1 % num2 != 0) { temp = num2; num2 = num1%num2; num1 = temp; } printf("最大公约数为:%d\n原创 2016-06-01 00:04:58 · 2579 阅读 · 0 评论 -
好玩的c语言程序!
执行程序后1分钟之后关机,只有在一分钟内输入“我是猪”便可取消关机。#include#include#includeint main(){ char input[10]; system("shutdown -s -t 60");A: printf("please input \"我是猪\",otherwise your computer will shut down after on原创 2016-06-01 00:04:47 · 3576 阅读 · 2 评论 -
c语言函数的可变参数列表
一、功能:为什么有可变参数列表呢?它可以实现一个神奇的功能:让一个函数在不同的时候可以接受不同数目的参数。二、实现要求:要实现这样的函数,我们需要使用一个va_list类型的变量和三个宏共同配合来访问我们的参数。要使用它们需要引用头文件#include 下面对他们做一下简单的介绍吧!va_list 其实就是 char*类型下面主要介绍一下这三个为宏:va原创 2016-08-03 10:36:34 · 948 阅读 · 0 评论