- 博客(34)
- 收藏
- 关注
原创 判断是否回文数
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int a; printf("请输入一个zhengshu:"); scanf("%d", &a);//ex:123// 123%10(/1)->3// 123%100/10->2// 123%1000/100->1// 思考规律 循环迭代 用FOR// 1.看到下面都是% 在/ 所以给第一项也加上/// 2./两边 都
2022-04-22 16:43:53
164
原创 线性表的链式表示
查找这是一段伪代码LinkList LocateElem(LinkList L,ElemType e){LinkList p=L->next;while(p!=NULL&&p->data!=e){p=p->next;}return p;}插入 给第二个位置 插入99第二个位置是a2 头指针是0;也可以把a2以及以后的数字往后移 把99插入bool ListFrontInsert(LinkList L,int i,ElemType e){
2022-04-15 20:09:10
84
原创 线性表的链式表示
头指针里面是指向a1的 数据在a1就算将a1和a1后面的数据都删去 那么头指针L也是存在的 不是空指针线性表头插法输入 3 4 5 6最后面来的就在最前头输出结果为 7 6 5 4 3尾插法输入 3 4 5 6 7输出 3 4 5 6 7R和s不断的指向新的数据最后结束后把尾指针r->next=NULL没有赋NULL而发生的错误因为没有赋NULL 他输入的数据是默认的cdcdcdcdCdcdcdcd是不可读的 所以不行发生异常...
2022-04-14 17:27:17
70
原创 顺序表增删改查
#include <stdio.h>#include <stdlib.h>#define MaxSize 50typedef int ElemType;//静态分配typedef struct { ElemType data[MaxSize]; int length;//当前顺序表中有多少个元素}SqList;//动态分配#define InitSize 100typedef struct { ElemType* data; int capacity;//
2022-04-12 16:51:32
166
原创 时间复杂度与空间复杂度
时间复杂度秒表,去记录算法运行时间,为什么不去用时间?同一个算法在不同的硬件机器上执行的时候 时间的差别很大用运行次数表示时间复杂度 因为运行次数与时间是正相关的问时间复杂度的时候 必须说O多少。思考题:如果一个算法的执行次数为3n³+5n,那么该算法的时间复杂度为多少?时间复杂度要忽略高阶项系数,和低阶项,上面题目答案是O(n³)空间复杂度 不重要...
2022-04-10 16:28:23
74
原创 c++的引用
用c++ 新建项目后缀必须为.cpp把&符号写到形参的位置是c++的语法称为引用 在c语言中不可以C和c++操作对比C和c++操作对比
2022-04-10 16:25:58
672
原创 typedef使用
typedef 作用在于起别名为什么要对int起别名,为了代码即表示注释typedef int INTEGER; 将int 起别名为integer
2022-04-10 16:24:07
237
原创 第七章结构体
有时候需要将不同类型的数据组合为一个整体,以便于引用。例如,一名学生有学号、姓名、性别、年龄、地址等属性,如果针对学生的学号、姓名、年龄等都单独定义一个变量,那么在有多名学生时,变量就难以分清。为此,C语言提供结构体来管理不同类型的数据组合。利用sarr 存储记住%c前要加空格Sarr 结构体内容存储他的字节是不是63呢?不是 不能人工去算是多少//结构体所占用的空间是68个字节,因为存在对齐,对齐目的是提高cpu访问内存的效率不能这么写 因为优先级问题. 是最高优先级解决办法
2022-04-08 17:14:20
559
原创 Work c语言遍历题1
练习递归1 12 23 34 1111 112 121 211 22 5种#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>//函数遍历 自己调用自己//递归的判断条件一定是写在递归公式之前的int step(int n) { if (1 == n || 2 == n)//递归的结束条件 { return n; } return(step(n - 1) + step(n - 2));//递归公式}int ma.
2022-04-08 17:11:26
677
原创 Work 输入数字 申请空间 输入数据 输出数据
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>//输入数字 申请空间 输入数据 输出数据int main() { char* p; int n;//申请存储多少字节的空间大小 char c; scanf("%d", &n); p= malloc(n); scanf("%c", &c);//注意在scanf和gets中间使用scanf("%c",&c)gets(p);//如果不通过上面的scanf去消..
2022-04-08 17:09:27
208
原创 Work子函数与主函数调用
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>void change(int* p)//相当于p=&i,*&i等价于i{ *p = *p / 2;}int main() { int i; scanf("%d", &i); change(&i); printf("%d\n", i);}
2022-04-08 17:07:46
59
原创 指针与一维数组,指针与动态内存申请
函数调用本质是值传递(实参赋值给形参)定义的时候为形参引用的时候为实参数组传递时候是弱化为指针的**指针与动态内存申请输入5申请5*sizeof(int)=20个字节数组一开始定义好就确定下来了 数组是放置在栈空间 栈的效率高堆 需要借 申请程序是放在磁盘上的有序的指令集合程序启动起来时候才叫进程Void 什么都不需要返回void* 返回的是无类型指针malloc动态申请**在puts结束后 需要释放free§;//释放空间,p的值必须和malloc最初相同p =
2022-04-06 10:37:38
364
原创 指针的自增与自减
指针的自增与自减刚学 理解起来稍微有点难一步一步来:先看代码`#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main() {int a[3] = { 2,7,8 };int* p;int j;p=a;j=*p++;printf(“a[0]=%d,j=%d,*p=%d\n”, a[0], j, *p);`a[0]=2;因为int*p;==inta[3]里的第一位 之前已经说过取多少基于他是什么类型函数 他这
2022-04-06 10:32:33
372
原创 指针的传递,偏移
指针的使用场景指针的传递函数调用的时候(值传递) 把i赋值给了j 所以j=多少不会影响i怎么在子函数里面去改变主函数的值呢?那么在c语言里就必须使用指针原理依旧是值传递定义的时候为形参 int *j调用的时候是实参 change(&i)*j=5 为间接访问指针的偏移数组是特殊的 不能和整型 字符型 浮点型变量去类比数组名a的类型是数组 a里面存了一个值是地址值是数组的起始地址(记住)为什么它只是输出了1因为他的基本类型是int 所以只把这四个字节拿了出来int*
2022-04-04 13:22:44
1409
原创 反转字符并且比较
先分析 首先含有空格 所以我们不用scanf 使用gets再来说说 gets与 fgets的区别Fgets会把/n放到字符数组中那怎么样能够去掉\n呢出现许多烫烫烫 没有停止符定义d[j]=‘\0’ 因为d[j]刚好出循环的时候为5在这里输入一个停止符 \0就ok#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>int main() { int i, j; c.
2022-04-04 12:18:17
230
原创 输入N个数(N小于等于100),输出数字2的出现次数;
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main() { int n; scanf("%d", &n);//接下来要输入多少个元素 int arr[100]; int i; for (i = 0; i < n; i++) { scanf("%d", &arr[i]);//往数组里元素读入数据 } int count = 0; for (i = 0; i < n; i++)//.
2022-04-04 10:37:09
342
原创 换钞票问题
#include<stdio.h>//穷举法int main() { int a, b, c, d,e=0;//10 5 2 1分别的张数 for (a = 1; a < 40; a++) { for (b = 1; b <= 40; b++) { for (c = 1; c <= 40; c++) { for (d = 1; d <= 40; d++) { if (10*a+5*b+2*c+d==100&&
2022-04-04 09:58:43
366
原创 利用while或者for循环计算n的阶乘
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main() { int n; scanf("%d", &n);//读取输入 int i = 1, total = 1; while(i<=n) { total = total * i; i++;} printf("%d\n", total); return 0;}
2022-04-04 09:18:57
529
原创 Gets与puts与Str系列 字符串
Gets与putsScanf 通过%s读取字符串时,当遇到空格以后,就会匹配结束,这样就没办法把一行带有空格的字符串存入到一个字符数组中解决办法 gets putsChar c[10] 字符数组的数组名里存的就是字符数组的起始地址类型是字符指针 解释: c的确是一个字符数组 数组名使用有特殊之处访问时候 访问的是c0-c19 编译器给c内部存了一个值 c里边存储的值的类型是字符指针gets©;//当一次需要读取一行时候使用gets 它读到\n=\0 结束Str系列 字符串 头文件 inc
2022-04-02 10:59:14
377
原创 第四章 数组
整型 浮点型 4字节Char 1字节4.1.1 数组定义某班学生的成绩,一行文字,一个矩阵:(1) 具有相同的数据类型(2) 使用过程中需要保留原始数据定义格式为 类型说明符 数组名[常量表达式]//定义数组就是写一个变量名,后面[] []里面写上整型常量/定义数组的一瞬间 数组占据的空间大小就确定下来了int a[5] = { 1,3,5,7,9 };例如:int a[10]; 变量名的命名规则 只有字母和下划线和之前的相同[]内不可以是变量4.1.2 一组数组在内存中的存储看
2022-04-01 10:56:14
55
原创 关系表达式与逻辑表达式
3.1.1 关系表达式与逻辑表达式优先级:(一定要记住)单目运算符 !逻辑非算术运算符(加减乘除,取模)关系运算符(> < >= <= != ==)逻辑运算符 && (两真为真) ||(两假为假)判断闰年 (能被四整除不能被100整除)(能被四整除也能被400整除)Year%4==0&&year%100!0|| year%4000If里面大部分放关系表达式,逻辑表达式,剩余的很小的情况,直接放入一个值If(表达式)判断为真 执行语句
2022-03-31 10:41:14
1863
原创 优先级:括号 算术 关系 逻辑 赋值
优先级:括号 算术 关系 逻辑 赋值运算符C语言提供了13种类型的运算符,如下所示。(1) 算术运算符(± * / %)。-先乘除 取模 后加减。依据c语言优先级While(){a%10 —4 //1234%10 输出4a=a/10; 123}1234%10 输出4代码:while (a!=0)//当a不等于零的时候就可以进入循环{printf("%d\n", a % 10);a = a / 10;}要想让并列一排显示 删去/nprintf("\n");//自
2022-03-30 10:22:11
1136
原创 printf以及scanf混合输入
什么是EOF(scanf 循环读取 发生错误时候返回eof)直接在代码里面 输入一个EOF按着ctrl 鼠标左键点击EOF其实是int -1循环while(()){}Scanf什么情况下会出错?行首输入ctrl z 回车行首输入ctrl z 回车行首输入ctrl z 回车(vs2013-vs2019)Rewind(stdin)清空标准输入缓冲区 输入hello 读取了h清空了后面Scanf的混合输入读取错误调试 加个RET看看到底读取了几个原因:ret=2 代表只读取了%
2022-03-29 11:49:13
480
原创 scanf与printf,判断闰年。
大写转小写 依据ascll码表 a到A之间间隔32 所以 a-32=A字符串常量“how are you”双引号单引号是字符型常量‘a’数据输入和输出函数scanf读取的是标准输入printf输出到控制台,输出到了标准输出scanf使用方法#include<stdio.h>int scanf(const char *format,…);format 是一个字符串。…是可变参数,参数的数目与format的%的数目保持一致%d一个十进制整数%f一个浮点数%c一个单一的字符%
2022-03-28 10:21:37
160
原创 【无标题】
前言进制的转换十进制转二进制 十进制数除以2 八进制除8 十六进制除16为什么不显示00 00 00 7b而是7b在前因为x86架构是小端存储 低位在前 高位在后为什么内存数据要用十六进制去看?非常的高效,两个字符就可以表示一个字节。浮点型 字母e或者E前必须有数字 且e后面的指数必须为整数S浮点型占用四个字节空间字符型常量 ‘a’ 单引号 不是双引号#include<stdio.h>int main(){ float f = 3e-3; printf("输出浮点
2022-03-26 10:07:07
44
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人