C
zhangm2020
这个作者很懒,什么都没留下…
展开
-
c项目之扫雷
扫雷游戏功能实现: 1、可以选择难度级别(初级、中级、高级); 2、实现了连续无雷区的显示; 3、添加计时功能。设计思路: 1、有难度的选择:初级、中级、高级,不同的难度级别会有不同数量的雷和不一样大小的网格; 2、通过输入坐标来确定你选择的踩雷位置,当你踩到此区显示0(即它的周围无雷)时,它会在显示周围各个位置(8个)的数字,若它周围的位...原创 2018-04-21 20:42:25 · 318 阅读 · 0 评论 -
c回顾之day3
1.将数组A中的内容和数组B中的内容进行交换。(数组一样大)2. 计算1/1-1/2+1/3-1/4+1/5 ⋯⋯ + 1/99 - 1/100 的值。3. 编写程序数一下 1到 100 的所有整数中出现多少次数字9。#include<stdio.h>#include<math.h>#include<windows.h>#def...原创 2018-03-27 20:47:58 · 401 阅读 · 1 评论 -
c回顾之day2
1. 给定两个整形变量的值,将两个值的内容进行交换。2. 不允许创建临时变量,交换两个数的内容。3.求10 个整数中最大值。4.将三个数按从大到小输出。5.求两个数的最大公约数。 #include<stdio.h>#include<windows.h>void exchange(int *num1,int *num2){//创建临时变量 //方法1 i...原创 2018-03-26 22:17:22 · 442 阅读 · 0 评论 -
c的操作符和表达式
C语言的操作符的总结以及其表达式的应用:1、移位操作符: 1)在C语言标准中,只规定了无符号数的移位操作是采用逻辑移位,即左移、右移都是使用的逻辑左移和逻辑右移; 2)使用移位操作符对该操作数本身的值并无影响,因为未有赋值操作符,仅有赋值操作符才可以影响原值; 3)而对于有符号数,其左移操作还是逻辑左移,但右移操作是采用逻辑右移还是算术右移取决于机器; 4)所以...原创 2018-03-24 18:27:15 · 560 阅读 · 1 评论 -
C的几个练习
1、统计混合汉字与ASCII字符串字符数量2、汉字逆置3、求水仙花数4、字符转整数 #include <stdio.h>//统计混合汉字与ASCII字符串字符数量int main(){ char buf[100]="你好abc"; int len = 0; int i = 0; while (buf[i]...原创 2017-07-06 11:17:01 · 444 阅读 · 0 评论 -
C实现推箱子
推箱子游戏编写思路总结 1.显示游戏地图 2.显示小人移动的方向 3.移动小人 第一、简单的界面输出时可以用指针数组,指针数组map中含十个指针map[0]、map[1]...map[9],分别是这是个字符串的起始地址char *map[row] = { "##########", "# ox ####", "### ##...原创 2017-09-01 16:52:29 · 501 阅读 · 0 评论 -
practice_替换空格、斐波那契数列、跳台阶、变态跳台阶
实现一个函数,将一个字符串中的空格替换成“%20”。eg:We Are Happy.替换之后的字符串为We%20Are%20Happy. #include<stdio.h>#include<string.h>#include<windows.h>/*替换空格:实现一个函数,将一个字符串中的空格替换成“%20”例如,当字符串为We...原创 2018-05-25 14:44:04 · 140 阅读 · 0 评论 -
c_动态通讯录(柔性数组)
实现一个动态通讯录通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:1. 添加联系人信息2. 删除指定联系人信息3. 查找指定联系人信息4. 修改指定联系人信息5. 显示所有联系人信息6. 清空所有联系人7. 以名字排序所有联系人将通讯录改成动态的版本:使用了柔性数组(结构体中最后一个元素),所用知识可见c的动态内存管理结...原创 2018-05-30 20:56:29 · 284 阅读 · 0 评论 -
practice_矩形覆盖、显示日历、数值的整数次方
矩形覆盖:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?实现代码:#include<stdio.h>#include<Windows.h>/*矩形覆盖:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,...原创 2018-05-31 13:21:55 · 141 阅读 · 0 评论 -
c回顾之day3-p
1、输出1-100的奇数。2、求一元二次方程的解。#include<stdio.h>#include<math.h>#include<windows.h>#define EXP 0.0000000001//设置精度void oddNumber(){ int i = 1; for(; i <= 100; i++) {...原创 2018-03-28 21:02:57 · 438 阅读 · 0 评论 -
c回顾之day4
1、在屏幕上输出有规律的*三角(上下)图案;2、水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身,求三位数的水仙花数;3、求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222;4、编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现。 #inclu...原创 2018-03-31 15:17:16 · 409 阅读 · 0 评论 -
c回顾之day4_p
1、实现动态多个字符从两端向中间移动显示;2、模拟用户登录情景,每个人只有三次登录机会(三次之内输入密码正确,则显示登录成功,否则程序退出);3、测试default在switch中位置的不同对case的影响。 #include<stdio.h>#include<string.h>#include<windows.h>void...原创 2018-03-31 19:12:19 · 458 阅读 · 0 评论 -
c项目之三子棋人机版
总结:1、此次写三子棋小游戏,应用了头文件和源文件的写法,使整个项目的层次更加清晰;2、环境:vs2013;3、游戏介绍: 此版三子棋是玩家和电脑进行依次轮流下棋,玩家先开始; 若是玩家输入的坐标不符合该游戏的设计,则会提示,直至输入正确为止; 在此过程中,电脑会拦截玩家棋子,但在这之前,它会先自己判断自己是否有一步胜利的情况,若是有,那么你就输了; ...原创 2018-04-18 13:24:25 · 392 阅读 · 0 评论 -
c项目之三子棋双人版
三子棋双人版 包含一个头文件threeChess.h和两个源文件(main.c和threeChess.c)//threeChess.h#ifndef _THREECHESS_H_#define _THREECHESS_H_#include<stdio.h>#include<stdlib.h>#include<Windows.h...原创 2018-04-15 17:59:55 · 622 阅读 · 0 评论 -
c回顾之数组
数组解析与总结 #include<stdio.h>#include<string.h>#include<Windows.h>void bubble_one_i(int bu[], int size0);void bubble_one_d(double bu1[], int size1);void bubble_two(int bu2...原创 2018-04-15 15:53:45 · 427 阅读 · 0 评论 -
c回顾之day5_p
1、计算n的阶乘;2、计算1!+2!+3!+......+10!;3、在一个有序数组中查找具体某个数字n。编写int binSearch(int x, int v[], int n);4、写一个函数每次调用此函数num的之就会增1。 #include<stdio.h>#include<stdlib.h>//srand()//rand()...原创 2018-04-08 18:04:01 · 369 阅读 · 0 评论 -
c回顾之day7
1、实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表;2、使用函数实现两个数的交换;3、实现一个函数判断year是不是润年;4、创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。5、实现一个函数,判断一个数是不是素数。 #...原创 2018-04-07 14:27:59 · 350 阅读 · 0 评论 -
c回顾之day6
1.写一个函数返回参数二进制中 1 的个数;2.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列;3. 输出一个整数的每一位;4.编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?(剖析:即为统计两个数异或(相同为0,不同为1)后1的个数。 #include<stdio.h>#include<windows....原创 2018-04-03 22:17:30 · 308 阅读 · 0 评论 -
c回顾之day5
1、完成猜数字游戏。2、写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)3、编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。 #include<stdio.h>#include<time.h>#inc...原创 2018-04-01 22:55:31 · 445 阅读 · 0 评论 -
实现执行Windows命令
①利用switch语句,c语言实现执行常用的Windows命令;②将项目中生成的EXE文件放于桌面,方便使用。此代码选用了最常用的十条Windows命令。 #include<stdio.h>#include<windows.h>int main(){ int n; printf("0: 画图板\n"); printf("1: CM...原创 2018-03-31 21:07:13 · 732 阅读 · 0 评论 -
practice_c
一、字符串赋值 char str[80]; str="abcdefg"是否正确? 错误,1、数组不能整体赋值,只能整体初始化2、数组名在第二句为数组首元素的空间 二、计算机工作时,内存储器用来存储?程序和数据程序是用来控制计算机完成某项任务的指令的集合,而数据是程序运行处理的对象。 三、字符串数组#include <stdio.h>void fun...原创 2018-06-02 21:13:11 · 209 阅读 · 0 评论 -
c_动态、存储到文件通讯录
实现一个通讯录;通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:1. 添加联系人信息2. 删除指定联系人信息3. 查找指定联系人信息4. 修改指定联系人信息5. 显示所有联系人信息6. 清空所有联系人7. 以名字排序所有联系人在动态版本(可见c_动态通讯录)的基础上将通讯录实现成文件存储的版本。 思想:用二进制流写入...原创 2018-06-07 13:00:19 · 190 阅读 · 0 评论 -
c的语句
对于C语言语句的总结1、空语句也是一条完整的语句,它本身只有一个分号;2、在表达式语句中, ①eg:y+1;这样的语句也合法,由于它没有赋值语句,所以它产生的值未被保存,即为没有效果; ②eg:print();输出函数,它有返回值,但与输出结果没有什么太大的关系,所以往往它的返回值也就被忽略;3、if语句中,括号内是任何可以产生整型的表达式,同于while语句;4、关于break和co...原创 2018-03-23 12:04:10 · 589 阅读 · 0 评论 -
可变参数
1.可变参数列表源码的剖析。2.使用可变参数,实现函数,求函数参数的平均值。3.使用可变参数,实现函数,求函数参数的最大值。4.模拟实现printf函数,可完成下面的功能//能完成下面函数的调用。//print("s ccc d.\n","hello",'b','i','t',100);//函数原型://print(char *format, ...)...原创 2018-05-10 21:20:38 · 273 阅读 · 0 评论 -
完善指针(1)
指针#include<stdio.h>#include<Windows.h>/*指针的存在意义: 指针让地址有地方存放,指针让内存的访问更加方便指针是存放地址才出现的,地址是为了标示一块地址空间的*///指针(类型)就是地址(指向:由地址找到)//地址就是指针(可以通过地址找到变量)//指针变量是变量//变量指针是变量的地址(指针就是地址,地址就是指...原创 2018-05-12 15:31:08 · 218 阅读 · 0 评论 -
c_main函数参数、冒泡排序字符串
1、使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。例如:命令行参数输入:test.exe -a 1 2 执行1+2输出32、写冒泡排序可以排序多个字符串。 #include<stdio.h>#include<stdlib.h>...原创 2018-05-17 23:34:13 · 359 阅读 · 0 评论 -
c回顾之day10
1、5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。2. 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。A说:不是我。B说:是C。C说:是D。D说:C在胡...原创 2018-05-17 20:49:40 · 105 阅读 · 0 评论 -
C_深入理解递归
1.递归和非递归分别实现求第n个斐波那契数;2.编写一个函数实现n^k,使用递归实现;3.写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返1+7+2+9,它的和是19;4. 编写一个函数reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列、要求:不能使用C函数库中的字符...原创 2018-05-08 20:49:39 · 217 阅读 · 0 评论 -
c函数调用过程(栈帧)详解
函数调用#include<stdio.h>int my_add(int a, int b){ int z = a + b; return z;}int main(){ int a = 0XAAAAAAAA; int b = 0xFFFFFFFF; int add = my_add(a,b); printf("add = %d\n",add); return ...原创 2018-05-09 22:38:56 · 1677 阅读 · 0 评论 -
栈帧应用
1、不通过调用函数来执行函数;//通过修改函数完成后返回其调用函数的断点地址#include<stdio.h>void bug(){ printf("helloBug\n");}int my_add(int a, int b){ int z = 0; //分析栈帧可知返回main函数的地址在第一个临时变量的下一个地址(栈自上而下) //函数调用参数列表自右而左的实...原创 2018-05-10 16:05:43 · 299 阅读 · 0 评论 -
c回顾之day12
1.编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回: ...原创 2018-04-26 16:34:55 · 184 阅读 · 0 评论 -
c的字符串函数以及内存操作函数
在c语言中谈论字符串一、存储:c语言中没有字符串类型,所以用char *类型的指针变量指向或者用字符指针存放字符串;二、'\0':字符串默认以'\0'结尾,若是不写,编译器会默认加上; 所以存放字符串的数组大小应该是strlen+1;(eg:char arr[ ] = "abcd";此时数组的大小默认是4+1;);三、内存位置:当字符串是保存在指针变量时,在内存中字符串是被放在字符常量区的,是不可被修改的,而此时的指针变量仅仅保存的是字符串的首元素字符的地址,若此时原创 2018-05-19 12:49:31 · 236 阅读 · 0 评论 -
指针总结(2)
指针:1、指针的总结;2、理解指针数组;3、理解数组指针;4、理解函数指针;5、理解函数指针数组(转移表);6、理解指向函数指针数组的指针;7、理解回调函数的使用;8、练习使用qsort函数排序各种类型的数据;9、模仿qsort的功能实现一个通用的冒泡排序;10、几个指针和数组的相关练习。原创 2018-05-20 16:58:02 · 228 阅读 · 0 评论 -
c_算法_枚举、递推、递归、迭代、分治
1、枚举:本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件:(1)可预先确定候选答案的数量;(2)候选答案的范围在求解之前必须有一个确定的集。#include<stdio.h>#include<windows.h>/**枚举法:实现给出任意五个数和结果,利用加减乘除使等式成立*考虑1:优先级*考虑2:除法右边不能为0;*/int judge(...原创 2018-04-12 20:46:37 · 2448 阅读 · 0 评论 -
c回顾之day1
我是计科专业的,对计算机语言有很大的兴趣,热爱探究它的一切,工作原理、工作程序、底层实现等等,所以我期望我可以用它实现更多更大更有益的事情,对于编程,动手能力是最需要的,所以每天除了校内上课,我都会打开电脑练习,我会尽可能多的练习,以及总结。 1. 打印100~200 之间的素数。2. 输出乘法口诀表。3. 判断1000年---2000年之间的闰年。#include<std...原创 2018-03-24 14:54:44 · 490 阅读 · 0 评论 -
c的数据总结
c语言关于数据的总结1、c的基本数据类型,四大类:整型(注意范围)、浮点型、指针、聚合类型;2、变量的基本声明,注意声明指针*;3、typedef:为数据类型定义新名字4、字符串在C语言中的表示方式有两种://第一种char str[] = "hello";//默认开辟6个空间(默认以'\n'结束)//放在数组中可以被修改//第二种char *str = "hello";//保存在只读区(字...原创 2018-03-22 17:51:29 · 470 阅读 · 0 评论 -
c_动态内存管理
动态内存管理 需要的空间大小在程序运行时才能知道,为了满足这种需求,需要动态分配空间。动态内存函数1、malloc函数原型:void *malloc(size_t size);申请一个连续可用的空间(以字节为单位),并返回指向这块空间的指针(申请成功)或者返回一个NULL指针(申请失败);2、free函数原型:void free(void *ptr);释放动态开辟的空间:仅仅是去掉p...原创 2018-05-30 13:52:06 · 719 阅读 · 0 评论 -
C_I/O流
计算机组成了解:首先了解计算机组成结构,五部分:输入单元、输出单元、存储器、cpu(运算器、控制器)。所谓的输入输出(I/O)是在内存的角度。运行程序必须在cpu中运行,然而根据他们的执行速度,cpu只与内存进行交互,所以cpu要执行的程序必须从其他外设(除cpu和内存之外)先加载到内存中,几个例子体现:发送QQ文字的过程:A方键盘输入 ---> A方内存 ---> A方cpu封装 -...原创 2018-06-05 19:51:46 · 308 阅读 · 0 评论 -
c_存储1000人信息的通讯录
实现一个通讯录通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:1. 添加联系人信息2. 删除指定联系人信息3. 查找指定联系人信息4. 修改指定联系人信息5. 显示所有联系人信息6. 清空所有联系人7. 以名字排序所有联系人#include<stdio.h>#include<stdlib.h>#include<...原创 2018-05-29 21:24:44 · 246 阅读 · 3 评论 -
注释转换
将文件中的c风格的注释转换为c++风格的注释,并保存在另一个文件中思路:(有限自动机)图解:一般情况#include<stdio.h>#pragma warning(disable:4996)typedef enum condition{//状态定义 NOT_ANNOTATION,//不是注释 MAYBE_IN_ANNOTATION,//可能进入注释...原创 2018-06-12 14:50:06 · 131 阅读 · 0 评论