- 博客(14)
- 收藏
- 关注
原创 出栈顺序判断问题——划线法
结合力扣的一道题和自己总结的规律,我得出了一个快速判断出栈顺序的方法。例题:出栈顺序是1 2 3,问3 1 2 是否是合理出栈顺序先把入栈循序按照栈的存放图示写成一竖排321再用笔按照出栈顺序把它连接起来向下划线时没有跨越未链接的数,说明入栈合理(示例中3到1跨过了2,因此不合理)特别注意,向上跨越不受影响,例如入栈顺序是1 2 3 时,出栈顺序1 3 2是合理的原理解析可以理解为模拟栈和队列的匹配过程,这也是 判断出栈合理性算法 的原理
2022-03-28 16:05:18
521
原创 [flutter]The library is legacy, and should not be imported into a null safe library.
该库是遗留的,不应该导入到空安全库中。解决方案:1.输入dart pub outdated --mode=null-safety2.输入dart pub upgrade --null-safety将所有依赖项升级为空安全。
2022-02-12 16:57:53
2618
原创 语义错误还是语法错误?
#include<stdio.h>int main(){ int i,j,sum,a; sum=0; for(i=0;i<1000;i++) { for(j=0;j<=i;j++) { if(i%j==0) sum+=j; } if(i==sum) printf("%d",sum); } printf("%d=1"); for(a=2;a<1000;a++) { if(sum%a==0) .
2021-11-18 20:33:36
328
原创 杨辉三角的输出
#include <stdio.h>#define SIZE 10 //规定输出层数int main(){ int a[SIZE+1][SIZE*2+1]={0}; //用一个二维数组容纳杨辉三角 int i,j; //定义两层循环变量 int b; //b用于存储最底层中间的数(最大数) int len=0; //最大数的宽度 //初始化第一个值 a[0][SIZE]=1; .
2021-11-13 17:58:24
456
原创 鞍点 程序设计入门——C语言
2鞍点(5分)题目内容:给定一个n*n矩阵A。矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数。一个矩阵A也可能没有鞍点。你的任务是找出A的鞍点。输入格式:输入的第1行是一个正整数n, (1<=n<=100),然后有n行,每一行有n个整数,同一行上两个整数之间有一个或多个空格。输出格式:对输入的矩阵,如果找到鞍点,就输出其下标。下标为两个数字,第一个数字是行号,第二个数字是列号,均从0开始计数。如果找不到,
2021-11-07 15:47:07
324
原创 多项式加法
多项式加法(5分)题目内容:一个多项式可以表达为x的各次幂与系数乘积的和,比如:2x6+3x5+12x3+6x+20现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。程序要处理的幂最大为100。输入格式:总共要输入两个多项式,每个多项式的输入格式如下:每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行一定是最高幂,最后一行一定是0次幂。注意第一行和最后一行之间不一定按照幂次降低顺序排列;如
2021-11-07 15:03:35
1625
3
原创 计算高精度小数
void h_p_decimal(int dividend,int divisor,int digit=200) //a被除数,b除数,精准位数 { char rlt[digit+1]={0}; int rem=1,quo=1; //remainder余数,quotient商 printf("0."); for(int i=0;i<digit&&rem!=0;i++) { quo=dividend*10/divisor; rem=dividen.
2021-10-26 15:21:10
239
原创 记忆三个重要的ASCII码
0,A,B对应的ASCII码,用二进制记忆会更简单。0:48bin:1100002^5+2^4=32+16=48A:65bin:10000012^6+1=65a:97bin:11000012^6+2^5+1
2021-10-20 09:00:49
291
原创 如何用c语言判断scanf()获取的是整数
时常有判断整数的需求,但查了下,实现判断整数需求的方法都有点复杂,自己想了个,挺简单,应该很早就有人用了。int main(void){ float n1; int n; scanf("%f",&n1); n = n1; if(n==n1) { printf("是整数"); } else { printf("不是整数"); } return 0;}有点利用float转int会损失小数部分
2021-10-16 21:53:51
689
原创 关于scanf()为什么要取&
&是地址符,也是指针,在scanf读取的数据为用户输入的字符串组成的数组,因此,除了参数本身为字符串组成的数组的情况下不需要在参数前加说明&,其余情况均需要使用&为输入类容分配字符串数组空间。例如:char a[10];scanf("%s",a);这样我们就先创建了一个字符类型的数组,并分配了十字节的长度。当我们输入A CDEFGHIJK后在计算机储存中表现如下:"'A'' ''C''D''E''F''G''H''I''\0'"其中,字符串结束字符.
2021-10-16 14:22:18
2199
原创 printf()函数的几个常见错误详解
本文适合有一定基础的新手,建议用于回忆复习,简单的知识点不再做解释。错误示例:float fnum;fnum = 1.1;printf("%d %d",2.2);此处想要输出1.1和2.2,输出结果显然与期望不符。1.转化说明(格式声明)与参数不符此处的3.1是float型,转换说明却是%d。在程序中,数据的存储方式是固定的,例如浮点型通常由32位组成,8位用于表示指数的值和符号,剩下的24位用于表示非指数部分,而int类型则是16位,1位表示正负号,
2021-10-16 12:47:42
6270
原创 E0169应输入声明
关于vs2019中E0169报错的解决方案报错表现:如图,在if else选择结构中的最后一个大括号处红线报错。提示第51行报错。定位问题:寻找代码中的注释如图,第22行中以字符&结束,这会有几率触发报错。解决方案:在特殊字符后添加其他内容将单行注释改为多行注释问题原因:猜测是//注释掉了后面不应该注释的内容,导致报错。今天碰上了这个问题,几经周折解决了,问题不好复现,应该和缓存有关。...
2021-09-29 14:35:34
6625
3
原创 void无类型的理解和使用
第一次编写程序,就没能运行成功,因为没有返回值。在代码结尾添加了return 0;后,程序可以运行了。但在解决问题时产生的关于void如何规范使用的问题,困扰了我整整两天。int main(void)int main()void main()void main(void)以上写法,在我的集成开发工具A上都能正常运行,但是在集成开发工具B上无法运行,更让我无法理解的是,继承开发工具B上不添加return0;也能运行。为了解决疑惑,我查阅了一些资料,解决了以下问题。为什么集成
2021-09-27 17:12:15
4587
原创 编译器和解释器的区别用一段微故事秒懂
一个小故事解释编译器与解释器一个商人需要去德国和法国做生意,他只会中文,如何与当地商人沟通呢?首先,他决定写信给德国和法国的商人,他找到了一个翻译,翻译将他用中文书写的信件,腾抄成德语法语邮寄出去。接着,他又提出雇佣两个随身翻译和他一起出行,随时随地将他所说的话翻译给当地的商人。END(编译器)就是他委托写信的翻译,把中文信件(高级语言)誊写成德语或法语信件(机器语言),再把英文信件(机器语言)交给当地商人(系统) 。(解释器)就是他雇佣的两个随身翻译,把他的中文(高级语言)随时随地翻译成德语或
2021-09-26 23:17:56
260
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人