![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
陈皮来三斤
这个作者很懒,什么都没留下…
展开
-
51单片机,点亮LED灯和闪烁
1.关键字sfr与sbit的区别sfr是定义寄存器的字节地址,sbit是定义可位寻址的位地址例如:sfr P1 =0x90;sbit A = P1^0 sbit B = P1^1;2. 单片机引脚有:电源引脚、晶振引脚、复位引脚、下载引脚、GPIO引脚其中晶振引脚主要是用来提供外部时钟,驱动指令执行,GPIO引脚包含P0、P1、P2、P3 四个端口3.点亮一个LED灯从电路图可以得知,L...原创 2022-04-21 11:34:35 · 3079 阅读 · 1 评论 -
C语言:程序在内存分配区域
内存总共分为三大区域:1.栈区主要存储的是 局部变量 和 函数的形式参数2.堆区主要存储的是 动态内存分配(malloc、free、calloc、realloc)3.静态区主要存储的是 全局变量 和 静态变量(static)...原创 2022-03-17 17:05:41 · 1032 阅读 · 0 评论 -
C语言:用联合体数据结构来判断计算机内存存储的大小端方式
int Judge(){ //创建联合体数据结构 union s { char i; int a; }; //定义并赋值 union s u; u.a = 1; //利用char类型的一个字节,来访问判断首字节是否为1 return u.i;}int main(){ int ret = Judge(); if(ret==1) { printf...原创 2022-03-10 15:46:36 · 1388 阅读 · 0 评论 -
C语言:杨氏矩阵
有一个数字矩阵,矩阵的每行从左到右是递增的矩阵从上到下是递增的请编写程序在这样的矩阵中查找某个数字是否存在。要求:时间复杂度小于O(N)int Find_Number(int arr[4][4], int k,int* x, int* y){ int a = 0; int b = *y-1; while (a<*x && b>=0) //a的坐标值不能最大行数,b的坐标值不能小于0 { //先找右上角进行判断 ...原创 2022-03-08 17:07:21 · 779 阅读 · 0 评论 -
C语言:实现一个函数,可以左旋字符串中的k个字符,例如:a[]=“abcde“,k=2 ----->a[]=“cdeab“
void Flip(char a[], int k){ int len = strlen(a); for (int i = 0; i < k; i++) { //第一步:将要翻转的字符保存 char tmp = a[0]; //第二步:将剩下的字符串往前移 for (int j = 0; j < len-1; j++) { a[j] = a[j + 1];...原创 2022-03-08 15:13:24 · 919 阅读 · 0 评论 -
C语言:将一个int数组的奇数偶数进行排序,奇数在前,偶数在后
int main(){ int arr[] = { 1,3,2,5,7,9,11 }; int sz = sizeof(arr) / sizeof(arr[0]); int left = 0; int right = sz - 1; while (left<right) {//从左往右找偶数 while (arr[left] % 2 == 1) { left++; }...原创 2022-03-08 09:01:12 · 464 阅读 · 0 评论 -
C语言:喝汽水问题,一块钱能买一瓶汽水,两个空瓶能换一瓶汽水,问40元能喝多少瓶汽水
int main(){ int money = 0; int count = 0;//喝汽水计数 int empty = 0;//空瓶计数 scanf("%d", &money); count = money; empty = count; while (empty>=2) { count = count + empty / 2; empty = empty / 2 + empty % 2;...原创 2022-03-08 09:01:22 · 613 阅读 · 0 评论 -
C语言:打印一个菱形图案
解题思路:分为上下两部分打印菱形 * *** ***** ******* ********************************* *********** ********* ******* ***** *** * int main(){ int line = 0; //接受外部打印的行数 scanf("%d", &...原创 2022-03-08 09:01:39 · 504 阅读 · 0 评论 -
C语言:输入a、n两个int类型,求表达式的和s=a+aa+aaa+aaaa.......
int main(){ int a = 0; int n = 0; scanf("%d,%d", &a, &n); int sum = 0; int ret = 0; for (int i = 0; i < n; i++) { ret = ret * 10 + a; sum += ret; } printf("%d", sum); return 0;}...原创 2022-03-08 09:00:50 · 946 阅读 · 0 评论 -
C语言:封装一个函数,把一个字符串逆序排序
void revese(char aa[],int sz){ assert(aa); int left = 0; int right = sz - 1; while (left<right) { char tmp = 0; tmp = aa[left]; aa[left] = aa[right]; aa[right] = tmp; left++; right-...原创 2022-03-07 15:45:47 · 264 阅读 · 0 评论 -
C语言:用指针函数的数组来做计算器
void Add(int x, int y){ printf("%d\n", x + y);}void Sub(int x, int y){ printf("%d\n", x - y);}void Mul(int x, int y){ printf("%d\n", x * y);}void Div(int x, int y){ printf("%d\n", x / y);}void meun(){ printf("*************...原创 2022-03-07 15:43:54 · 161 阅读 · 0 评论 -
C语言:用递归函数,求一个无符号整形类型每个个数相加之和
int Digitsum(int n){ if (n>9) { return Digitsum(n / 10) + n % 10; } else { return n; } }int main(){ unsigned int n = 0; scanf("%d", &n); int num = Digitsum(n); printf("%d", num); ...原创 2022-03-07 15:36:32 · 124 阅读 · 0 评论 -
C语言:打印乘法口诀表,输入数字,打印相对应的行数
void print_table(n){ for (int i = 1; i <= n; i++) { for (int j = 1;j <= i;j++) { printf("%d*%d=%-3d ", j, i, i * j); } printf("\n"); }}int main(){ int n = 0; scanf("%d", &n...原创 2022-03-07 15:35:10 · 340 阅读 · 0 评论 -
C语言:用指针类型去打印出一个整形数组的每一个元素
int main(){ int arr[] = { 1,2,3,45,6,7,8,10,9 }; int* p = arr; int sz = sizeof(arr) / sizeof(arr[0]);//利用*p的变化解引用 for (int i = 0; i < sz; i++) { printf("%d ", *(p + i)); } return 0;}...原创 2022-03-07 15:32:13 · 491 阅读 · 0 评论 -
C语言:输入一个int类型,打印它二进制中奇数位和偶数位
void print(int m){ printf("打印奇数位"); for (int i = 30; i >= 0; i-=2) { printf("%d ", (m >> i) & 1); } printf("\n"); printf("打印偶数位"); for (int i = 31; i >= 1; i -= 2) { printf("%d ", (m >>...原创 2022-03-07 15:23:39 · 1009 阅读 · 0 评论 -
C语言:求两个int类型M和N之间二进制不同bit的个数统计
//方法:首先让两个数异或,再统计其中的二进制中的1int Bin_count_number(int m, int n){ int count = 0; int a = m^n; while (n) { if (a%1==1) { count++; } a = a / 2; } return count;}int main(){ int m = 15;...原创 2022-03-07 15:18:43 · 116 阅读 · 0 评论 -
C语言:计算输入一个int类型的值,计算他内存二进制中的1有多少个
int main(){ int a = 0; int count = 0; scanf("%d", &a); //1.用左移>>、&按位与的方法 for (int i = 0; i < 32; i++) { if ((1 & (a >> i)) == 1) { count++; } } //2.用取余%、除 /的方...原创 2022-03-07 15:10:51 · 377 阅读 · 0 评论