自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2022-08-25 09:32:37 3560

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

若在此时使能中断将产生中断,其实中断标志已经被置1(产生事件的时候)当一个事件发生时,事件标志位由硬件置1,此时无论是否使能中断。可见:更新事件与更新中断共用一个标志位。事件标志位:FlagStatus。中断标志位:ITStatus。...

2022-08-13 15:04:30 2490

原创 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 11:13:01 2721

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

#include<stdio.h>int fac(int n);int main(){int m;m=0;printf("请输入m的值");scanf("%d",&m);printf("%d\n",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 10:52:04 141

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

#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 14:23:33 334

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

#include<stdio.h>int main(){int arr[3]={1,2,3};int *p;p=&arr[0];//数组首个元素的地址就是数组的首地址p=arr;//数组名就是数组的首地址printf("首元素是:%d\n",*p);return 0;}D:\>gcc jianzhi.cD:\>a.exe首元素是:1D:\>...

2022-05-03 15:44:55 2597

原创 输入三个数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 10:30:09 340

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

#include<stdio.h>int main(){//随便找一个地址,例如:0x000000000061FE33int *p;p=(int *)0x000000000061FE33;printf("p=0x%p\n",p);return 0;}D:\>gcc dizhi.cD:\>a.exep=0x000000000061FE33D:\>

2022-04-26 17:26:51 203

原创 为什么要用指针(一)

#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\n");printf("交换前:data=%d,data2=%d\n",data,data2);chagedata(data,data2);p.

2022-04-26 16:44:37 226

原创 指针要求类型的原因

#include<stdio.h>int main(){int a;a=0x1234;int *p;char *c;p=&a;c=&a;//存储的地址相同printf("p=%p\n",p);printf("c=%p\n",c);//地址指向的存储单元的空间大小不同printf("a=%x\n",*p);printf("a=%x\n",*c);//地址增量也不同printf("++p=%p\n",++p);printf("++c=%p\n".

2022-04-25 11:43:35 454

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

#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 11:09:39 402

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

#include<stdio.h>int main(){int a;a=10;printf("a=%d\n",a);printf("a的地址是:0x%p\n",&a);printf("a=%d\n",*(&a));//*是间接运算符,作用是求取地址所指向的存储单元中的值return 0;}D:\>gcc zhi.cD:\>a.exea=10a的地址是:0x000000000061FE1Ca=10...

2022-04-16 17:12:54 473

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

#include<stdio.h>int PrintData(int data){printf("%d\n",data);}int main(){int arry[3]={0,1,2};PrintData(arry[2]);return 0;}D:\>gcc printdata.cD:\>a.exe2D:\>

2022-04-14 13:06:22 494

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

#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('\n');}for(i=0;i<=2;i++){for(j=0;j<=i;j++){putchar(' ');}for(k=0;k<5-2*i;k++)...

2022-04-12 11:24:54 4804

原创 编写程序,输出从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('\n');}}}return 0;}

2022-04-10 21:52:19 10801

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

2022-04-10 17:06:04 2863 1

原创 编写程序,求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\n",sum1-sum2);return 0;}

2022-04-09 14:01:38 11540

原创 整型数越界情况

#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\n",sum);return 0;}D:\>gcc jiecheng.cD:\>a.exes...

2022-03-28 18:13:50 404

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

#include<stdio.h>int main(){int x;for(x=3;x<6;x++){printf((x%2)?("**%d"):("##%d\n"),x);}return 0;}D:\>gcc sanmu.cD:\>a.exe**3##4**5D:\>

2022-03-28 10:51:23 848

原创 函数的递归-求n的阶乘

#include<stdio.h>int factorial(int num){int ret;if(num==1){ret=1;}else{ret=factorial(num-1)*num;}return ret;}int main(){int num;int result;puts("请输入一个阶乘数");scanf("%d",&num);result=factorial(num);printf("%d的阶乘是:%d\n",num,res.

2022-03-21 13:59:17 369

原创 函数的递归(自己调用自己)

#include<stdio.h>int getage(int num){int age;if(num==1){age=10;}else{age=getage(num-1)+2;}return age;}int main(){int age;int num;printf("你知道第几个学生的年龄吗?\n");scanf("%d",&num);age=getage(num);printf("第%d个学生的年龄是%d\n",num,age)...

2022-03-21 12:57:29 696

原创 函数的嵌套

#include<stdio.h>//函数嵌用int bigeer(int data1,int data2){return data1>data2?data1:data2;}int get_thebigest(int data1,int data2,int data3,int data4){int max;max=bigeer(data1,data2);max=bigeer(max,data3);max=bigeer(max,data4);return max;.

2022-03-21 12:53:38 108

原创 一种函数调用条件-函数定义时,该函数在主函数的后面,那么需要在主函数中声明调用的函数

#include<stdio.h>int main(){int getbigdatafromtwo(int x,int y); //函数声明部分int data1;int data2;int bigone;puts("请输入两个数:");scanf("%d%d",&data1,&data2);bigone=getbigdatafromtwo(data1,data2);printf("两个数据是%d,%d,大数是:%d\n",data1,data2,big.

2022-03-21 11:24:51 921

原创 getchar()吸收scanf产生的空格

#include<stdio.h>int main(){int y0;int m0;int d0;int y1;int m1;int d1;int age;int enter;puts("请输入一个学生的生日");scanf("年:%d、月:%d、日:%d",&y0,&m0,&d0);getchar(); //getchar()吸收scanf产生的空格puts("请输入当前的日期");scanf("年:%d、月:%d、日:%d",&.

2022-03-17 16:51:30 978

原创 main()打成mian()的后果,切记小心

#include<stdio.h>int mian()//打错{int m;float a;puts("请输入一个数");scanf("%f",&a);switch((int)a/10){case 0:case 1:case 2:m=1;break;case 3:m=2;break;case 4:m=3;break;case 5:m=4;break;case 6:case 7:case 8:case 9:m=5;break;def.

2022-03-17 15:23:23 700

原创 输入两个整数(两个小数,两个字符),输出最大值,用函数实现

#include<stdio.h>//请输入两个整数,用函数输出其中的最大值int getbigonefromtwodata(int x,int y){if(x>y){y=x;}/*int z;if(x>y){z=x;}else{z=y;}*//*return x>y?x:y; //三目运算符*/return y;}int main(){int x;int y;int bigone;puts("请输入两个整数");scanf(".

2022-03-16 13:43:39 1838

原创 实参与形参

#include<sdio.h>/*test中的x,y与mian函数中的x,y是不同的对象,值相同,但是地址空间不同实参与形参是一一对应*/int test(int x){ //形式参数,被调用的时候才被分配存储空间,调用结束空间就会被释放/*int test(100)int test(int x+1)*/int y;y=x-1;return y;printf("test函数中x的地址是%p,x的值是%d\n",&x,x);}int main(.

2022-03-15 17:38:16 492

原创 函数调用的两种方式

#include<stdio.h>int add(int x,int y){int z;z=x+y;return z;}int empty(){}int main(){int x;int y;int z;y=add(x,y);////函数调用可以当作表达式printf("%d+%d=%d\n",x,y,add(x,y));//函数调用可以当作表达式empty();//函数调用可以成为一条独立的语句return 0;}...

2022-03-11 15:26:20 479

原创 c语言-定义空函数

#include<stdio.h>void empty(){}//作用是程序设计中模块设计的时候,占个位置int main(){empty();//调用空函数return 0;}

2022-03-11 14:55:54 4717

原创 定义一个有三个参数,一个返回值的函数

#include<stdio.h>int add(int data1,int data2 ,int data3){int ret;ret=data1+data2+data3;return ret;}int main(){int x;int y;int z;int ret;puts("请输入一个数:");scanf("%d",&x);puts("请再输入一个数:");scanf("%d",&y);puts("请继续输入一个数:");scanf.

2022-03-11 13:25:26 842

原创 定义一个有两个参数,一个返回值的函数

#include<stdio.h>int add(int data1,int data2 ){int ret;ret=data1+data2;return ret;}int main(){int x;int y;int z;int ret;puts("请输入一个数:");scanf("%d",&x);puts("请再输入一个数:");scanf("%d",&y);z=add(x,y);printf("%d+%d=%d",x,y,z);r.

2022-03-11 12:56:06 697

原创 定义一个有一个参数有一个返回值的函数

#include<stdio.h>/*定义一个有参数有返回值的函数在同一个程序中,函数名必须唯一,形式参数名只要在同一个函数中唯一就行了,可以与其他函数中的变量同名*/int getdatafromX(int x){ //这个x是形参 int y;y=x-1;return y;}int main(){int y;int x;puts("请输入一个值");scanf("%d",&x);y=getdatafromX(x)+1; //这个x是实参.

2022-03-11 11:57:52 1348

原创 定义一个无参数的函数

#include<stdio.h>//定义一个无参数函数void printwelcome(){printf("==================\n");printf("生活不值眼前的苟且还有诗和远方\n");printf("==================");}int main(){printwelcome();return 0;}D:\>gcc hanshu1.cD:\>a.exe==================鐢熸椿涓.

2022-03-11 11:12:26 2947

原创 有一个3*4的矩阵,用程序输出其中的最大元素,且输出最大元素所在的行和列

#include<stdio.h>int main(){int arr[3][4]={{12,13,6,8},{4,0,1,34},{56,78,5,88}};int i;int j;int max;max=arr[0][0];int line;int column;for(i=0;i<3;i++){for(j=0;j<4;j++){printf("%d\t",arr[i][j]);}}for(i=0;i<3;i++){for(j=0;.

2022-03-10 11:21:37 1589

原创 如果对全部元素赋初值,则定义数组时第1维的长度可以不指定,但第2维的长度不可省略

#include<stdio.h>int main(){int arr[][4]={1,2,3,4,5,6,7,8};//千万不能省略列,例如:int arr[2][]={1,2,3,4,5,6,7,8,};int i;int j;for(i=0;i<2;i++){for(j=0;j<4;j++){printf("%d ",arr[i][j]);}putchar('\n');}return 0;}...

2022-03-09 17:25:16 812

原创 二维数组几种部分赋初值的情况

#include<stdio.h>int main(){/*2:int arr[3][4]={{1},{2},{3}};int i;int j;for(i=0;i<3;i++){for(j=0;j<4;j++){printf("%d ",arr[i][j]);}putchar('\n');}*//*3:int arr[3][4]={{1},{0,2},{0,0,3}};int i;int j;for(i=0;i<3;i++).

2022-03-09 17:16:17 482

原创 二维数组的定义及初始化

#include<stdio.h>int main(){int arr[2]={1,2};//一维数组的定义及初始化int data[2][3]={{222,333,444},{777,888,999}};//二维数组的定义及初始化//int data[2][3]={222,333,444,777,888,999};也可以这样初始化与上面的结果一样,但是不提倡int i;int j;for(i=0;i<2;i++){for(j=0;j<3;j++){printf("%d %d %d\

2022-03-09 16:20:28 744

原创 用简单排序法在终端按从小到大的顺序输出10个数

#include<stdio.h>int main(){// 简单选择排序法int arr[]={12,8,13,9,223,44,5,66,7,88};int i;int j;int tmp;int len;len=sizeof(arr)/sizeof(arr[0]);for(i=0;i<len-1;i++){for(j=i+1;j<len;j++){if(arr[i]>arr[j]){tmp=arr[i];arr[i]=arr[j];arr.

2022-03-07 16:43:01 335

原创 用冒泡排序法按从大到小输出7个数

#include<stdio.h>int main(){//输出七个数12,8,13,9,5,6,4用冒泡排序法int arr[]={12,8,13,9,5,6,4};int i;int j;int tamp;int size;size=sizeof(arr)/sizeof(arr[0]);for(i=0;i<size-1;i++){for(j=0;j<size-1-i;j++){if(arr[j]<arr[j+1]){tamp=arr[j];a.

2022-03-07 12:22:26 1323

原创 在终端输出斐波那契数列

#include<stdio.h>int main(){int arr[30];arr[0]=0;arr[1]=1;int i;for(i=2;i<30;i++){arr[i]=arr[i-1]+arr[i-2];}for(i=0;i<30;i++){printf("%d ",arr[i]);}printf("\ndone");return 0;}代码运行结果:D:\>gcc shuzhu4.cD:\>a.exe0 .

2022-03-07 11:19:29 142

空空如也

空空如也

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

TA关注的人

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