小刘在编程
码龄3年
关注
提问 私信
  • 博客:116,543
    116,543
    总访问量
  • 78
    原创
  • 1,048,341
    排名
  • 33
    粉丝

个人简介:当代大学生,爱编程,爱生活!

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2022-02-19
博客简介:

weixin_67159771的博客

查看详细资料
个人成就
  • 获得47次点赞
  • 内容获得7次评论
  • 获得156次收藏
  • 代码片获得851次分享
创作历程
  • 78篇
    2022年
成就勋章
TA的专栏
  • c语言
    4篇
兴趣领域 设置
  • 编程语言
    c++c语言
  • 嵌入式
    单片机
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

175人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

串口接收进入中断+串口接收不进入中断

串口接收进入中断:串口数据寄存器接收到数据,会置一个接收数据寄存器非空标志位,如果使能了中断会进入中断,在中断函数里读取数据寄存器,状态标志位自动清0,在中断函数中读取数据寄存器可以防止程序打扰串口数据寄存器的读取。串口接收不进入中断:串口接收数据,不进入中断也可以接收数据,但缺点是读取数据寄存器不及时,下一次接收的数据会把上一次接收的数据覆盖,出现漏读现象导致错误。...
原创
发布博客 2022.08.25 ·
3419 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

STM32中事件标志位与中断标志位

若在此时使能中断将产生中断,其实中断标志已经被置1(产生事件的时候)当一个事件发生时,事件标志位由硬件置1,此时无论是否使能中断。可见:更新事件与更新中断共用一个标志位。事件标志位:FlagStatus。中断标志位:ITStatus。...
原创
发布博客 2022.08.13 ·
2408 阅读 ·
2 点赞 ·
0 评论 ·
10 收藏

STM32定时器(计数器计数周期)

因为计数器是从0开始计数到ARR,计数为0时计算一次,例:ARR=3,计算器计数4次(0,1,2,3)计数器时钟:CK_CNT=CK_PSC/(PSC+1)计数器计数一次的时间:t=1/CK_CNT。计数器计数周期:T=t*(ARR+1)内部时钟:CK_INT(72MHz)预分频器实际分频系数:PSC+1。为什么是ARR+1?...
原创
发布博客 2022.08.09 ·
2652 阅读 ·
3 点赞 ·
0 评论 ·
12 收藏

函数的递归求n的阶乘以及各种规律问题

#include<stdio.h>int fac(int n);int main(){int m;m=0;printf("请输入m的值");scanf("%d",&m);printf("%d
",fac(m));return 0;}int fac(int n){if(n<1) return -1;else if(n==1) return 1;else return n*fac(n-1);}
原创
发布博客 2022.08.09 ·
139 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

编辑一个方阵,找出方阵每列中最小元素及所在的行号(遇到了超过二维数组的定义范围的问题)

#include<stdio.h>#define M 5void findmin(int (*s)[M],int *c){int i;int j;int t;for(j=0;j<M;j++){ t=0; for(i=1;i<M;i++){if(s[i][j]<s[t][j]){ //上面若令i=0,s[i+1][j]就会出现s[5][j]的情况,超出了数组的定义范围 t=i; } c[j]=t; }}}void outdata(i.
原创
发布博客 2022.05.25 ·
325 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

编辑一个方阵,找出方阵每列中最小元素及所在的行号(遇到了超过二维数组的定义范围的问题)

#include<stdio.h>#define M 5void findmin(int (*s)[M],int *c){int i;int j;int t;for(j=0;j<M;j++){ t=0; for(i=1;i<M;i++){if(s[i][j]<s[t][j]){ //上面若令i=0,s[i+1][j]就会出现s[5][j]的情况,超出了数组的定义范围 t=i; } c[j]=t; }}}void outdata(i.
原创
发布博客 2022.05.25 ·
325 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

指针变量指向一个数组的首地址

#include<stdio.h>int main(){int arr[3]={1,2,3};int *p;p=&arr[0];//数组首个元素的地址就是数组的首地址p=arr;//数组名就是数组的首地址printf("首元素是:%d
",*p);return 0;}D:\>gcc jianzhi.cD:\>a.exe首元素是:1D:\>...
原创
发布博客 2022.05.03 ·
2527 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

输入三个数a,b,c,要求不管怎么输入,在输出的时候,a,b,c,由从大到小的顺序输出,用函数封装实现

#include<stdio.h>void chagedata(int *a,int *b,int *c){int max;if(*a<=*b){max=*b;*b=*a;*a=max;}if(*a<=*c){max=*c;*c=*a;*a=max; }if(*b<=*c){max=*c;*c=*b;*b=max;}}int main(){int a;int b;int c;puts("请输入三个数");scanf(".
原创
发布博客 2022.04.27 ·
337 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

为什么要用指针(2)指针指向固定的区域

#include<stdio.h>int main(){//随便找一个地址,例如:0x000000000061FE33int *p;p=(int *)0x000000000061FE33;printf("p=0x%p
",p);return 0;}D:\>gcc dizhi.cD:\>a.exep=0x000000000061FE33D:\>
原创
发布博客 2022.04.26 ·
191 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

为什么要用指针(一)

#include<stdio.h>/*void chagedata(int data,int data2){int tamp;tamp=data;data=data2;data2=tamp;}int main(){int data;int data2;data=10;data2=20;printf("why point
");printf("交换前:data=%d,data2=%d
",data,data2);chagedata(data,data2);p.
原创
发布博客 2022.04.26 ·
221 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

指针要求类型的原因

#include<stdio.h>int main(){int a;a=0x1234;int *p;char *c;p=&a;c=&a;//存储的地址相同printf("p=%p
",p);printf("c=%p
",c);//地址指向的存储单元的空间大小不同printf("a=%x
",*p);printf("a=%x
",*c);//地址增量也不同printf("++p=%p
",++p);printf("++c=%p
".
原创
发布博客 2022.04.25 ·
407 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

通过指针变量访问存储单元中的数据

#include<stdio.h>int main(){int a;int *p;a=10;p=&a;printf("a=%d",*p);return 0;}D:\>gcc zhizheng.cD:\>a.exea=10D:\>
原创
发布博客 2022.04.25 ·
382 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

通过变量名访问存储单元中的数据以及通过地址访问存储单元中的数据

#include<stdio.h>int main(){int a;a=10;printf("a=%d
",a);printf("a的地址是:0x%p
",&a);printf("a=%d
",*(&a));//*是间接运算符,作用是求取地址所指向的存储单元中的值return 0;}D:\>gcc zhi.cD:\>a.exea=10a的地址是:0x000000000061FE1Ca=10...
原创
发布博客 2022.04.16 ·
459 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数组元素作为函数调用的实参

#include<stdio.h>int PrintData(int data){printf("%d
",data);}int main(){int arry[3]={0,1,2};PrintData(arry[2]);return 0;}D:\>gcc printdata.cD:\>a.exe2D:\>
原创
发布博客 2022.04.14 ·
484 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

编写程序,打印以下图形(利用了循环的嵌套)

#include<stdio.h>int main(){int i,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++){putchar(' ');}for(k=0;k<2*i+1;k++){putchar('*');}putchar('
');}for(i=0;i<=2;i++){for(j=0;j<=i;j++){putchar(' ');}for(k=0;k<5-2*i;k++)...
原创
发布博客 2022.04.12 ·
4769 阅读 ·
2 点赞 ·
0 评论 ·
7 收藏

编写程序,输出从2000年至3000年所有闰年的年号,每输出10个年号换一行。判断公元年是否为闰年的条件是:

#include<stdio.h>int main(){int year;int j;j=0;for(year=2000;year<=3000;year++){if(year%4==0&&(year%100!=0)||year%400==0){printf("%d ",year);j++;if(j%10==0){putchar('
');}}}return 0;}
原创
发布博客 2022.04.10 ·
10553 阅读 ·
8 点赞 ·
0 评论 ·
26 收藏

编写程序,求e的值,e约等于1+1/1阶乘+1/2阶乘+1/3阶乘+1/4阶乘+·····

原创
发布博客 2022.04.10 ·
2830 阅读 ·
2 点赞 ·
1 评论 ·
5 收藏

编写程序,求1-3+5-7+······-99+101的值

#include<stdio.h>int main(){int i;int j;int sum1;int sum2;sum1=0;sum2=0;for(i=1;i<=101;i=i+4){sum1=sum1+i;}for(j=3;j<99;j=j+4){sum2=sum2+j;}printf("1-3+5-7+······-99+101=%d
",sum1-sum2);return 0;}
原创
发布博客 2022.04.09 ·
11300 阅读 ·
6 点赞 ·
0 评论 ·
21 收藏

整型数越界情况

#include<stdio.h>int main(){int i;float n;//如果n定义成整型:int n;后面算出来的n将会越界,程序无法编译,所以选用实型变量float sum;sum=1.0;n=1.0;for(i=1;i<=49;i++){n=n*i;sum=sum+1/n;}printf("sum=%f
",sum);return 0;}D:\>gcc jiecheng.cD:\>a.exes...
原创
发布博客 2022.03.28 ·
395 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用三目运算符创造printf的格式控制

#include<stdio.h>int main(){int x;for(x=3;x<6;x++){printf((x%2)?("**%d"):("##%d
"),x);}return 0;}D:\>gcc sanmu.cD:\>a.exe**3##4**5D:\>
原创
发布博客 2022.03.28 ·
830 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多