自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sherry_zhe的博客

计算机小白的成长之路

  • 博客(53)
  • 收藏
  • 关注

原创 贪吃蛇小游戏

头文件:游戏界面:#ifndef __UI_H__#define __UI_H__struct UI { // 边缘宽度(字符宽度) int marginTop; int marginLeft; // 游戏区域的字符个数 int gameWidth; int gameHeight; // 整个窗口大小字符宽度/高度 int windowWidth; int windo...

2018-05-16 18:16:56 294

原创 猜数字游戏

实现猜数字游戏 代码如下:#include<stdio.h>#include<windows.h>#include<time.h>void menu(){ printf("************************\n"); printf("** 1 play 0 exit **\n"); printf("************...

2018-04-08 19:01:54 168

原创 三子棋游戏

三子棋游戏:即井字格游戏,将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,就算赢。代码实现包括三部分:头文件 、测试程序和游戏运行程序头文件:#ifndef __GAME_H__#define __GAME_H__#include <stdio.h>#include <string.h>#include <stdlib.h...

2018-04-08 15:09:02 264

原创 编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现。

花括号匹配:{}、{{}}、{{}{}}int main(){ int ch; //定义一个变量来接收文件读取的信息 int count = 0; //定义一个计数器来验证括号匹配情况 while ((ch = getchar()) != EOF) //当文件没有结束时用ch接收输入的信息.注:EOF为文件结束标志 当在编译器输入框输完所输的内...

2018-03-29 18:56:42 136

原创 自定义类型:结构体,枚举,联合体

结构体的声明假如要定义一个结构体A有两种:1.struct  A {                                                              2.struct {                    char  c;                                               

2017-11-28 17:46:11 477

原创 实现一个通讯录

实现一个通讯录; 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人#define LEN 3 struct peop

2017-11-28 17:16:20 327

原创 动态内存开辟 malloc calloc realloc free 函数

一、malloc和freemalloc和free都是c语言的库函数,一般在stdlib.h中,主要用来进行一段动态内存的分配,包括申请和释放。malloc的函数原型为Void *malloc(size_t size),主要用于从堆上进行一段内存的申请,返回无类型的指针,需要将返回的指针转换为数据的类型,同时对申请的数据不进行初始化。free用于将一段指针所指向的内存进行释放

2017-11-28 17:13:30 374

原创 研究 sscanf sprintf 与fread fwrite

一、sscanf函数    sscanf函数原型为int sscanf(const char *str, const char *format, ...)。将参数str的字符串根据参数format字符串来转换并格式化数据,转换后的结果存于对应的参数内。具体功能如下:(1)根据格式从字符串中提取数据。如从字符串中取出整数、浮点数和字符串等。(2)取指定长度的字符串

2017-11-28 17:07:40 186

原创 关于指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针

函数指针:重点在指针,表示它是一个指针,它指向的是一个函数。eg: int (*fun)();指针函数:重点在函数,表示它是一个函数,它的返回值是指针。 eg: int*  fun();数组指针:重点在指针,表示它是一个指针,它指向的是一个数组。int (*fun)[8];指针数组:重点在数组,表示它是一个数组,它包含的元素是指针 itn*  fun[8];

2017-11-16 16:02:46 164

原创 字符串函数模拟实现

strchr函数函数功能:查找一个字符。在一个字符串中查找一个特定的字符。函数原型:char *strchr(char const *str,int ch);函数说明:strchr在字符串str中查找字符ch第一次出现的位置,找到后返回一个指向该位置的指针。如果该字符不存在于字符串中,则返回一个NULL指针。注意:第二个参数是一个整型值,但是,它包含了一个字符串值。#i

2017-11-16 15:59:26 224

原创 写冒泡排序可以排序多个字符串

冒泡排序:每次对相邻的两个元素进行比较,若前者大于后者则交换,如此一趟下来最后一个则是最大的一个元素;重复以上步骤,除了已经确定位置的元素。#include #include void bubble_sort_str(char *str[],int sz) { int i = 0; int j = 0; for (i = 0; i <

2017-11-16 15:25:39 353

原创 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。

使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。例如:命令行参数输入:test.exe -a 1 2 执行1+2输出3 #include #include int main(int argc, char* argv []) {

2017-11-16 15:23:31 260

原创 模拟实现strcat

#define _CRT_SECURE_NO_WARNINGS 1  #include  #include  #include      char* my_strcat(char *dest, char *src)  {      assert(dest);      assert(src);      char *strdest = dest;    

2017-11-16 15:20:45 138

原创 模拟实现strcpy

#include   #include    char *my_strncpy(char *dest, const char* src, int n)  {      assert(dest != NULL);      assert(src != NULL);      char*ret = dest;      while (n)         //复制n个字

2017-11-16 15:18:52 139

原创 喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。

#include #include int main(){ int money = 20; int count = 20; while (1) { if (money % 2 != 0) { count = count + money - 1; break; }

2017-11-16 15:17:14 385

原创 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。

从头到尾依次异或数组中的每一个数字,那么最终得到的结果就是两个只出现一次的数字的异或结果。因为其他数字都出现了两次,在异或中全部抵消掉了。由于这两个数字肯定不一样,那么这个异或结果肯定不为0,也就是说在这个结果数字的二进制表示中至少就有一位为1。我们在结果数字中找到第一个为1的位的位置,记为第N位。现在我们以第N位是不是1为标准把原数组中的数字分成两个子数组,第一个子数组中每个数字的第N位都为1,

2017-11-16 15:15:15 192

原创 模拟实现printf函数,完成函数调用

通过函数原型可以看出printf函数其实是一个可变参数函数,在printf函数中只需要知道传入函数的第一个参数,就可以根据该参数在栈中的存储位置获取后面参数的位置及信息了。printf函数第一个参数const cahr *format,该字符串内包含并确定了后面参数的输出格式,比如"%c","%d","%d","%x"等等。printf函数返回值,就是通过该函数打印到标准输出流(屏

2017-11-16 15:09:42 724

原创 使用可变参数,实现函数,求函数参数的平均值和最大值

利用可变参数列表:可变参数列表是通过宏来实现的,这些宏定义在stdarg.h中。值得注意的是:可变参数列表传参时,第一个传的参数的个数。步骤:1.定义一个va_list类型的变量 arg2.宏va_start(arg,num)---这个宏有两个参数,第一个参数为va_list类型的变量,第二个参数为可变参数列表之前的参数。作用就是使得 va_list 的变量指向可变

2017-11-16 14:12:39 1863

原创 使用宏实现两个数中求较大值

#include#include#define MAX(x,y) x>y?x:yvoid main(){ int a, b; scanf("%d%d", &a, &b); printf("%d\n", MAX(a, b)); system("pause"); return 0;}其中,x>y?x:y为if (a > b) return a;else r

2017-10-28 16:59:01 513

原创 写一个宏可以将一个数字的奇数位和偶数位交换。

交换一个数字(二进制数)的奇偶数位一、进行按位操作,将奇数位和偶数位分别提取出来二、合并提取出的数字例:对 5(0101)进行操作变成 10(1010)#include#include#define M(x) ((((x)&(0x55555555)) > 1))//提取x的奇数位并左移一位 偶数位左移一位 int main(){

2017-10-28 16:38:44 256

原创 使用函数,调整数组使奇数全部都位于偶数前面

输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分下列代码为无函数调用时的代码#include#includeint main(){ int a[] = { 0, 1, 2, 3, 4, 9, 0, 2, 3, 1, 4 }; int len = sizeof(a) / sizeof(a[0]); in

2017-10-28 15:22:21 263

原创 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的,找出这个数字(使用位运算)

位运算包含按位与、按位或、按位异或、按位取反、左移和右移按位与:&  1 & 1 = 1    1 & 0 = 0     0 & 1 =0    0 & 0 = 0按位或:|  1 | 1 = 1    1 | 0 = 1     0 | 1 = 1    0 | 0 = 0按位异或:^ 1 ^ 1 = 0    1 ^ 0 = 1     0 ^ 1 = 1   0 ^

2017-10-26 00:34:55 192

原创 .编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。

例:25在32位机器上25这个值包含下列各位: 00000000000000000000000000011001 翻转后:(2550136832) 10011000000000000000000000000000 程序结果返回: 2550136832 将value的二进制值从右至左依次从左至右赋给另一个数代码如下:#include#includeint

2017-10-25 20:47:08 446

原创 不使用(a+b)/2这种方式,求两个数的平均值。

因为不能使用(a+b)/2这种方式,故用右移这种计算方式。(右移一位相当于除二)代码如下:#include#includeint main(){ int a, b,c; scanf_s("%d,%d", &a, &b); c = a + b; c = c >> 1; printf("%d", c); system("pause"); return 0;}

2017-10-25 20:29:59 277

原创 打印杨辉三角

#include#include#define M 10int main(){ int a[M][M], i, j; for (i = 0; i<M; i++) for (j = 0; j <= i; j++) { if (i == j || j == 0) a[i][j] = 1; else a[i][j] = a[i - 1][j] + a[

2017-10-25 19:04:14 183

原创 警查审问四名嫌疑人,其中三人说真话,一人说谎。

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯 的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。 现在请根据这些信息,写一个程序来确定到底谁是凶手。需要注意的是如何判定三人说真话,一人说谎。已知每人说谎为0,说真话为1,所以只需判断三人的语句加起来的总和

2017-10-23 16:22:35 3141

原创 5位运动员参加了10米台跳水比赛,预测比赛结果

A选手说:B第二,我第三;  B选手说:我第二,E第四;  C选手说:我第一,D第二;  D选手说:C最后,我第三;   E选手说:我第四,A第一; 比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。值得注意的是比赛成绩可以并列,即有多个第一或第二名。#include#includeint main(){ int a = 0; int b =

2017-10-21 19:07:16 283

原创 实现一个函数,判断一个数是不是素数

#include #include sushu(int m){ int i; for (i = 2; i <= m; i++); { if (m%i == 0) printf("%d是素数", m); else printf("%d不是素数", m); }}int main(){ int a; scanf("%d", &a); sushu(a); s

2017-10-15 16:12:10 863

原创 实现一个函数判断year是不是润年。

#include #include void RN(int i){ if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) printf("是闰年"); else printf("不是闰年");}int main(){ int a; scanf_s("%d ", &a); RN(a); system("pause"); r

2017-10-14 17:48:09 246

原创 使用函数实现两个数的交换。

在函数中交换应为交换地址而非单纯的交换数字大小。#include #include void swap(int*pa, int*pb){ int tmp; tmp = *pa; *pa = *pb; *pb = tmp;}int main(){ int a, b; scanf_s("%d %d", &a, &b); swap(&a, &b); printf("%d

2017-10-14 17:22:39 2147

原创 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定

实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定, 输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。#include #include cheng(int m){ int i, j; for (i = 1; i <= m; i++) { for (j = 1; j <= i; j++) printf("%d*%d=%2d ", i,

2017-10-14 17:19:09 459

原创 c语言中的运算符

C语言运算符是说明特定操作的符号,它是构造C语言表达式的工具。C语言的运算异常丰富,除了控制语句和输入输出以外的几乎所有的基本操作都为运算符处理。除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符,比如位运算符。     一、算术运算符     1. 加法运算符 +     除了可以进行加法运算外,还可以表示正号:+5212.减法

2017-10-05 14:53:23 824

原创 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同

输入例子: 1999 2299 输出例子:7 #define _CRT_SECURE_NO_WARNINGS#include#include#includeint main(){ int i = 0; int m = 0; int n = 0; int count = 0; printf("请输入两个数:\n"); scanf("%d%d", &m, &n); fo

2017-10-05 14:45:41 240

原创 输出一个整数的每一位

_CRT_SECURE_NO_WARNINGS#include#includeint main(){ int num = 0; printf("请输入一个整数:"); scanf("%d", &num); if (num > 9) { printf("%d\t", num % 10); num /= 10; } system("pause"); return 0;

2017-10-05 14:43:55 367

原创 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。

#define _CRT_SECURE_NO_WARNINGS#includeint main(){ int arr[32]; int m = 0, i = 0, count = 0; printf("请输入一个十进制数:\n"); scanf("%d", &m); for (i = 0; m != 0; i++) { arr[i] = m % 2; m = m / 2

2017-10-05 14:14:46 231

原创 写一个函数返回参数二进制中 1 的个数

#define _CRT_SECURE_NO_WARNINGS#include#includeint count_one_bits(unsigned int value){ int i = 0; int count = 0; for (i = 0; i <= 32;i++) { if (value % 2 == 1) { count++; } value =

2017-10-03 18:04:59 176

原创 一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出

大小写字母间的ascll码值差32.运用getchar()函数,且注意运算级。#define _CRT_SECURE_NO_WARNINGS#includeint main(){ int ch; printf("请输入一个字符:\n"); while ((ch = getchar()) != EOF) { if (ch >= 'a'&&ch <= 'z') pr

2017-09-28 22:18:29 506

原创 模拟三次密码输入的场景

最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。 #define _CRT_SECURE_NO_WARNINGS#include#include int main(){ char password[10] = { 0 }; int i; printf("请输入密码:\n"); for (i = 0; i < 3;

2017-09-28 22:07:36 188

原创 用折半查找法在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.

#define _CRT_SECURE_NO_WARNINGS#include int main(){ int a[15] = { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; int l = 0, h = 14, x, m; printf("输入数字:"); scanf("%d", &x); while (l<h) {

2017-09-28 22:05:02 3233

原创 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和

如:2+22+222+2222+22222 #include int main(){ int i, n = 2, sum = 0; for (i = 1; i <= 6; i++){ sum += n; n = n * 10 + 2; } printf("%d\n", sum); return 0;}

2017-09-25 17:28:00 255

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除