自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 C语言进阶——动态内存管理基础知识

C语言进阶——动态内存管理为什么要有动态内存管理这个概念呢?因为我们平时定义一个数组,都是诸如此类:int num[10];我们要知道,数组的存储是在栈上开辟存储空间,而栈的大小只有1——2MB,很少,而且程序运行起来不止有数组,还有别的局部变量和函数调用都要在栈上进行,所以当数组的数据太多时就会牵扯到栈溢出的问题,而且数组定义好后大小是不能变的,所以引入动态内存的概念,因为动态数据不在栈上存储,而是在堆上存储,而堆比栈的大小大的多一般32位操作系统下为4GB,而且内存可以进行动态划分,用多少分多少

2020-11-27 20:19:09 438

原创 C语言进阶——编写通讯录(动态内存管理、结构体)

C语言进阶——编写通讯录(动态内存管理、结构体)实现一个通讯录;通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:添加联系人信息删除指定联系人信息查找指定联系人信息修改指定联系人信息显示所有联系人信息清空所有联系人以名字排序所有联系人#define MAX_SIZE 1000#include<stdio.h>#include<windows.h>#include<string.h>#include&

2020-11-27 16:54:28 425

原创 C语言进阶——字符串函数

C语言进阶——字符串函数都在头文件“#include<string.h>”中。1.strlen函数——测字符串长度,遇到‘\0’停止。返回值为一个无符号整型。函数原型:size_t strlen( const char *string );函数参数:字符类型指针(也就是字符串的首地址)——char *2.strcpy函数——字符串拷贝。函数参数(2个):目标字符串(strDestination)地址和源字符串(strSource)地址,返回值为目标字符串地址。函数原型:char *

2020-11-24 21:11:28 456 2

原创 C语言进阶——数据在内存中的存储

C语言数据存储首先要知道,我们所有的东西都在内存中存储着,不管数据还是什么,计算机内,以32位操作系统为例,一个存储单元是一个字节,8位,2位16进制数,每个存储单元都有着对应的地址,也就是8位16进制数的编号。当我们要存储数据时,例如:int a=0x12345678//十六进制那么存储的时候是应该12 34 56 78存储呢,还是应该78 56 34 12存储呢?这就牵扯到大小端模式了。所谓大端模式,就是低地址存高数据位,高地址存低数据位;小

2020-11-20 21:25:33 531

原创 C语言编程题——密码截取

C语言编程题——密码截取Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBAABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式).本题含有多组样例输入。输入描述:输入一个字符串输出描述:返回有效密码串的最大长

2020-11-17 22:35:08 1650 1

原创 C语言——进阶冒泡&&回调函数

C语言——进阶冒泡&&回调函数1.模仿qsort的功能实现一个通用的冒泡排序。#include<stdio.h>#include<stdlib.h>int MyCmp(const void *eleme1,const void *eleme2){ return *((int*)eleme1) - *((int*)eleme2);//4个字节进行比较}void MyQsort(void *num,int len,int size,int (*cmp)(vo

2020-11-17 16:58:18 361

原创 C语言基础编程题——喝水问题,译码问题

C语言基础编程题——喝水问题,译码问题有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入描述:输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<

2020-11-16 18:07:30 940

原创 C语言编程例题(中等)——句子逆序

C语言编程例题(中等)——句子逆序将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<string.h>void IWord(char *p,int len){ int word = 0; char *h = p; p = p + le

2020-11-15 22:54:38 812

原创 C语言基础编程题9道——指针,数组,图形打印,水仙花数

C语言基础编程题9道——指针,数组,图形打印1.写一个函数打印arr数组的内容,不使用数组下标,使用指针。arr是一个整形一维数组。#include<stdio.h>void Print(int *p,int len){ int i = 0; while (i != len){ printf("%d ",*(p+i)); i++; } printf("\n");}int main(){ int num[] = {10,20,30,0,8,2,66,88,99};

2020-11-14 17:14:05 898 1

原创 C语言基础编程题——3道(二进制)

C语言基础编程题——3道1.编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?输入例子:1999 2299输出例子:7#include <stdio.h>int Once(int x,int y){ int n = x^y;//异或之后不同位变为一,相同位为零 int count = 0; while (n!=0){ count++; n = n&(n - 1); } return count;}int main(){

2020-11-12 13:02:28 524

原创 C语言游戏设计——扫雷

C语言游戏设计——扫雷C语言的第二个游戏,(历时3小时)很有成就感。#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>void menu();void Clean(char Board[][10], int cow, int col);void Show(char Board[][10], int cow, int col);void CreatLei(

2020-11-10 21:49:02 411

原创 C语言——三子棋游戏设计

C语言——三子棋游戏它是我自己写出来的第一个游戏,当写出来的那一刻满满成就感。#include<stdio.h>#include<stdlib.h>#include<windows.h>#include<time.h>void Show(char Word[][3], int cow, int col);void menu();void Clean(char Word[][3], int cow, int col);void User(cha

2020-11-10 21:42:15 347

原创 C语言基础编程题——二进制转换+递归+三目条件运算符

C语言基础编程题——二进制转换+递归+三目条件运算符输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。#include<stdio.h>int Num(int n){ if (n==0){ return 0; } else { return n % 2==1? (1 + Num(n / 2)) : Num(n / 2); }}int main(){ int n; scanf("%d",&n); printf("%d\n",Num(n))

2020-11-09 16:18:57 354

原创 C语言进阶题——坐标移动

C语言进阶题——坐标移动开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入A10;S20;W10;D30;X;A1A;B10A11;;A10;输出10,-10#include<stdio.h>int main(){ int x = 0, y = 0; char ch[5000]; scanf("%s",ch); for (int i = 0; c

2020-11-08 10:30:51 1446

原创 C语言递归代表——BT跳台阶

C语言递归代表——BT跳台阶话说有一只青蛙,它可跳任意阶台阶,问有n阶台阶,有多少种跳法:一节台阶有一种,二阶台阶有两种,三阶台阶有4种,对于三阶台阶,可以看成一个底层台阶和一个由两个台阶构成的一个新台阶,有两种跳法,红框框的又有两种,所以应该有2*2种跳法,即4种。所以就可以找到递归条件和终止条件。所以C语言代码为:#include<stdio.h>int TaiJie(int T){ if (T==1){ return 1; } else{ return 2 * T

2020-11-07 22:23:04 488

原创 C语言递归代表——汉诺塔

汉诺塔——递归在A上有三个盘子,那么我要将它一个一个移到C上,并且最大放下边,最小在最上边,那么可以这么表示:A-》C,A-》B,C-》B,A-》C,B-》A,B-》C,A-》C;那么对于N个盘子,那么我们可以将它看成一个大盘子加N-1个剩下的盘子,将这N-1个盘子通过C移到B,最大的盘子再从A移到C,这N-1个盘子再通过A移到C,这就是递归,即N-1个盘子再看成N-2个盘子加一个大盘子,以此类推,就得到最终结果。以下是C语言代码:#include<stdio.h>void print(

2020-11-07 21:40:16 329

原创 C语言——基础编程题11道(递归,非递归,循环,链式调用,斐波那契数,static关键字)

C语言——基础编程题11道(递归,非递归,循环,链式调用,斐波那契数,static关键字)1.利用上面实现的函数打印100到200之间的素数。(要用到math.h中的sqrt函数(开方))(一个数的因数总有一个小于等于这个数的开方!例如:16=44=28=1*16)#include<stdio.h>#include<math.h>void SuShu(){ int i, j; for (i = 100; i <= 200;++i){ for (j = 2; j

2020-11-05 13:43:21 478

原创 C语言——基础编程题3道

C语言——基础编程题3道1.功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )(质因数为所有能够整出被除数的质数)#include<stdio.h>int main(){ long num,i; scanf("%d",&num); for (i =2; i <=num;){ if (num%i!=0){ i++; } else{ printf("%d ",i); num =

2020-11-03 17:24:36 375

原创 C语言——基础编程例题9道

C语言——基础编程例题9道(都是比较简单的,就不加注释了,不懂评论区问我,别忘了关注点赞欧)1.最大公约数:#include<stdio.h>int main(){ int x, y,number; scanf("%d%d",&x,&y); if (x > y){ x = x^y; y = x^y; x = x^y; } for (int i = 1; i <= x;i++){ if (x%i==0&&y%i==0){ nu

2020-11-03 00:11:37 810

原创 C语言——进阶编程题(字符串、进制转换)

C语言——进阶编程题(字符串、进制转换)输入一个十六进制的数值字符串。(进制转换)输入:0xA输出10基本思路:从输入入手,不妨当它为一个字符串,只不过特殊点(为一个十六进制数),那么我们恰巧可以利用这个十六进制输入格式作为循环判断条件,只需要稍稍改改,接下来就是重头戏了,十六进制转十进制的算法,对十六进制的(0x之后的)每位数进行运算——例如:0xAA对应的十进制数等于(从右向左)A16^0加上A16的1次方,结果就为170.(enenenenen权值是什么,哈哈哈,十六进制的权值就是16,十

2020-11-01 22:50:17 680

原创 C语言——基础编程例题(比大小,for循环)

C语言——基础编程例题1.写代码将三个数按从大到小输出方法一:(基础)不用循环比较三次(仅限数字个数较小时),(交换数字可以用以下三种方法)(其中‘^’为异或运算符,例如5异或3,结果为6;6异或5为3;6异或3为5)#include<stdio.h>void sort(int x,int y,int z){ if (x > y){ x = x^y; y = x^y; x = x^y; /* x=x+y; y=x-y;

2020-11-01 18:56:58 4984

空空如也

空空如也

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

TA关注的人

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