当前位置: 首页 > news >正文

C语言—控制语句

控制语句就是用来实现对流程的选择、循环、转向和返回等控制行为。

分支语句

if语句

基本结构

if(表达式)

{

        语句块1;

}

else

{

        语句块2;

}

执行顺序: 

如果表达式判断成立(即表达式为真),则执行语句块1;如果表达式判断不成立(即表达式为假),则执行语句块2。

例如:

如果下雨就打印 “with umbrella” ,如果不下雨就打印 “no umbrella” 。

#include <stdio.h>
#include <stdlib.h>#define RAIN 0int main(int argc,char const * argv[])
{if(RAIN)printf("with umbrella\n");elseprintf("no nmbrella\n");return 0;
}

输入a和b两个整数,实现用较大的数减较小的数。

int a,b;
scanf("%d%d",&a,&b);
if(a>b)printf("%d\n",a-b);
elseprintf("%d\n",b-a);

以下程序的运行结果是(B

int main()
{unsigned int a;int b=-1;a=b;printf("%u",a);return 0;
}

A. -1        B. 65535        C. 32767        D. -32768

解析:

有符号数转换为无符号数就是该数的补码,即有符号数为正数时,转换为无符号数就是他本身;为负数时,转换为无符号数就是他的补码。

拓展:

同样字长的无符号数和有符号数之间相互转换的一般规则是:数值可能会变,但是位模式不变,如果转换的无符号数太大以至于超过了补码能够表示的范围,可能会得到该范围的最大值。

设有定义语句:

        char c1=92,c2=92;

则以下表达式中值为零的是(A

A. c1^c2        B. c1&c2        C. ~c2        D. c1|c2

如果a=1,b=2,则a | b的值为(D

A. 0        B. 1        C. 2        D. 3

实现大小写字符转换

#include <stdio.h>
#include <stdlib.h>int main(int argc,char const * argv[])
{char c=getchar();if(c>'A'&&c<'Z')ch+=32;else if(c>'a'&&c<'z')ch-=32;else{printf("input error\n");return ;}putchar(c);putchar(10);return 0;
}

结合宏定义和三目运算实现求两个数的差

解析:在宏定义中定义了变量,在函数中不能出现同名变量

#include <stdio.h>
#include <stdlib.h>/*三目运算结合宏*/
#define M 20
#define N 10
#define DIFF M>N?M-N:N-M/*三目运算结合宏函数*/
#define DIFF_FUN(a,b) a>b?a-b:b-aint main(int argc,char const *argv[])
{printf("%d\n",DIFF);printf("%d\n",DIFF_FUN(M,N));    //调用宏函数:M>N?M-N:N-Mreturn 0;
}

分层结构

if(表达式1)

{

        语句块1;

}

else if(表达式2)

{

        语句块2;

}

else

{

        语句块3;

}

执行顺序:

先判断if后面的表达式1是否成立,如果成立(即结果为真)则执行语句块1,如果结果为假则继续判断else if里面的表达式2,如果表达式2成立则执行语句块2,如果结果为假,则执行else里面的语句块3。

例如:

判断两个数的大小关系。

#include <stdio.h>
#include <stdlib.h>int main(int argc,char const * argv[])
{int a,b;scanf("%d %d",&a,&b);if(a>b)printf("a>b\n");else if(a<b)printf("a<b\n");elseprintf("a=b\n");return 0;
}

从终端输入一个学生的成绩,来判断学生成绩的等级并打印出来,等级评判如下:

90-100为A;80-89为B;70-79为C;60-69为D;60分以下为不及格(打印sorry,you fail )

#include <stdio.h>
#include <stdlib.h>int main(int argc,char const * argv[])
{int score;scanf("%d",&score);if(score<=100&&score>=90)printf("A\n");else if(score>=80&&score<=89)printf("B\n");else if(score>=70&&score<=79)printf("C\n");else if(score>=60&&score<=69)printf("D\n");else if(score<=59)printf("sorry,you fail\n");elseprintf("input error\n");return 0;
}

嵌套结构

if(表达式1)

{

        if(表达式2)

        {

                语句块1;

        }

        else

        {

                语句块2;

        }

}

else

{

        语句块3;

}

执行顺序:

先判断if后面的表达式1,如果结果为真则判断嵌套的if后面的表达式2,如果表达式2结果为真 则执行语句块1,如果结果为假则执行语句块2,如果表达式1结果为假则执行语句块3。

从终端输入一个学生的成绩,来判断学生成绩的等级并打印出来,如果输入的不是int型数据则打印 “input error” ,等级评判如下:

90-100为A;80-89为B;70-79为C;60-69为D;60分以下为不及格(打印sorry,you fail )

#include <stdio.h>
#include <stdlib.h>int main(int argc,char const * argv[])
{int score;scanf("%d",&score);if(score>=0&&score<=100){if(score<=100&&score>=90)printf("A\n");else if(score>=80&&score<=89)printf("B\n");else if(score>=70&&score<=79)printf("C\n");else if(score>=60&&score<=69)printf("D\n");else if(score<=59)printf("sorry,you fail\n");}elseprintf("input error\n");return 0;
}

输入一个int类型的数据,如果大于0则打印大于0,并且再判断是否大于等于10,如果大于等于10则打印大于等于10,小于10则打印小于10,如果数据小于0则不打印任何东西。

#include <stdio.h>
#include <stdlib.h>int main(int argc,char const * argv[])
{int num=0;scanf("%d",&num);if(num>=0){printf("num>=0\n");if(num>=10){printf("num>=10");}elseprintf("num<10\n");}return 0;
}

总结:

  1. 首先需要判断表达式是否成立 ,如果成立就执行if里面的语句块,否则执行else里面的语句块;
  2. if后面可以没有else,但是else前面必须有if,并且else必须紧跟着if后面,中间不能加任何语句;
  3. if和else下面语句块中如果只有一行语句则可以省略花括号。

switch…case语句

基本结构

switch(变量或表达式

{

        case 常量1:

                语句块1;

                break;

        case 常量2:

                语句块2;

                break;

        ……

        default:

                语句块n+1;

}

 执行顺序:

当switch后面括号中的变量或表达式与下面其中一个case后面的常量相符时,就执行相应case语句后面的语句块,并依次执行后面的case,直到遇到break语句跳出switch语句。如果变量或表达式与所有的case后面的常量都不相等,则执行default后面的语句块。

注意:

  1. switch后面的表达式不能是浮点型数据或字符串;
  2. case后面的break可以省略,但是省略后会从相符的case开始顺序执行,直到遇到break结束。

从终端输入一个学生的成绩,然后打印出来对应成绩的等级,要求用到switch…case结构编写,等级评判如下:

90-100为A;80-89为B;70-79为C;60-69为D;60分以下为不及格(打印sorry,you fail )

#include <stdio.h>
#include <stdlib.h>int main(int argc,char char const * argv[])
{int score;scanf("%d",&score);switch(score/10){case 10:case 9:printf("A\n");break;case 8:printf("B\n");break;case 7:printf("C\n");break;case 6:printf("A\n");break;default:printf("sorry,you fail\n");break;}return 0;
}

从终端输入一个日期(年、月、日),判断这是这一年的第几天。

解析:

首先要先判断是闰年还是平年,闰年的二月份比平年的二月份多一天。普通年份除以4,有余数的是平年,没有余数的是闰年,对于整百的年份,要除以400,有余数的是平年,没有余数的是闰年。

方法一:

#include <stdio.h>
#include <stdlib.h>int main(int argc, char const *argv[])
{int year, month, day, days = 0, leap = 0;scanf("%d %d %d", &year, &month, &day);if (year % 100 == 0){if (year % 400 == 0)leap = 1;elseleap = 0;}else{if (year % 4 == 0)leap = 1;elseleap = 0;}switch (month){case 1:days = day;break;case 2:days = 31 + day;break;case 3:days = 31 + 28 + leap + day;break;case 4:days = 31 + 28 + leap + 31 + day;break;case 5:days = 31 + 28 + leap + 31 + 30 + day;break;case 6:days = 31 + 28 + leap + 31 + 30 + 31 + day;break;case 7:days = 31 + 28 + leap + 31 + 30 + 31 + 30 + day;break;case 8:days = 31 + 28 + leap + 31 + 30 + 31 + 30 + 31 + day;break;case 9:days = 31 + 28 + leap + 31 + 30 + 31 + 30 + 31 + 31 + day;break;case 10:days = 31 + 28 + leap + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;break;case 11:days = 31 + 28 + leap + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;break;case 12:days = 31 + 28 + leap + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;break;default:printf("month err\n");break;}printf("%d\n",days);return 0;
}

方法二:

#include <stdio.h>
#include <stdlib.h>int main()
{int year = 0, month = 0, day = 0, days = 0, leap = 1;scanf("%d %d %d", &year, &month, &day);leap = (year % 4 == 0 && year % 100 != 0 || year % 400 == 0);switch (month){case 12:days += 30;case 11:days += 31;case 10:days += 30;case 9:days += 31;case 8:days += 31;case 7:days += 30;case 6:days += 31;case 5:days += 30;case 4:days += 31;case 3:days += 28 + leap;case 2:days += 31;case 1:days += day;break;default:printf("error!\n");break;}printf("%04d-%02d-%02d:这一年的第%d天\n", year, month, day, days);return 0;
}

总结:

  1. 执行顺序:先判断switch()括号中的条件是否满足switch语句块里的case,如果满足哪个case则执行那个case里面的语句块,如果不满足则执行default中的默认语句块,并且如果case后面没有break会依次向下执行,直到遇到break后结束。
  2. 如果case后面的语句块和上一个case中的语句块相同,那么可以省略,形式如下:

case 常量1:

case 常量2:

        语句块1;

        break;

switch…case语句要遵循的规则:

  1. 只能针对基本数据类型的整型数据或字符型数据,如果要判断的条件是其他类型必须用if;
  2. case后面的标签必须是常量;
  3. case后面的标签必须是唯一表达式,不能有两个重复的case。

循环语句

for循环

基本结构

for(表达式1;表达式2;表达式3)

{

        语句块;

}

说明:

表达式1:赋初值

表达式2:循环判断条件

表达式3:增值或减值

执行顺序:

首先执行表达式1进行赋初值,然后判断表达式2是否成立,如果成立就进入循环执行语句块,最后执行表达式3进行增值或者减值,再判断表达式2是否成立,如果成立就再次进入循环,直到判断表达式2不成立的时候退出循环。

例如:

求5的阶乘(5!)

int sum=1;
for(int i=1;i<=5;i++)sum*=i;
printf("%d\n",sum);

嵌套结构

for(表达式1;表达式2;表达式3)

{

        for(表达式4;表达式5;表达式6)

        {

                语句块;

        }

}

例如:

用for循环打印99乘法表

1*1=1

1*2=2  2*2=4

1*3=3  2*3=6  3*3=9

1*4=4  2*4=8  3*4=12  4*4=16

1*5=5  2*5=10  3*5=15  4*5=20  5*5=25

1*6=6  2*6=12  3*6=18  4*6=24  5*6=30  6*6=36

1*7=7  2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49

1*8=8  2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64

1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

#include <stdio.h>
#include <stdlib.h>int main(int argc,char const * argv[])
{for(int i=1;i<10;i++){for(int j=1;j<=i;j++)printf("%d*%d=%d ",j,i,i*j);printf("\n");}return 0;
}

for循环变形 

变形一

表达式1;

for(;表达式2;表达式3)

{

        语句块;

}

变形二

表达式1;

for(;表达式2;)

{

        语句块;

        表达式3;

}

变形三

表达式1;

for(;;)

{

        if(表达式2)

        {

                语句块;

                表达式3;

        }

        else

        {

                break;

        }

}

例题:

打印所有的水仙花数

水仙花数:三位数的百位立方+十位立方+个位立方=原数

#include <stdio.h>
#include <stdlib.h>int main(int argc,char const argv[])
{int g,s,b,num;for(int i=100;i<1000;i++)    {g=i%10;s=i/10%10;b=i/100;num=g*g*g+s*s*s+b*b*b;if(num==i)printf("%d\n",i);}return 0;
}

从终端输入行数,例如输入5,打印类似于下图的图形。

分析:

下半部分的行数和空格数关系表:

行数 i空格数 = i-1星星数 = 5 - i + 1
105 = 5 - 1 + 1
214 = 5 - 2 + 1
323 = 5 - 3 + 1
432 = 5 - 4 + 1
541 = 5 - 5 + 1

#include <stdio.h>
#include <stdlib.h>int main(int argv,char const * argc[])
{int n;scanf("%d",&n);for(int i=1;i<=n;i++){for(int j=1;j<=i;j++)printf("*");printf("\n");}for(int i=1;i<=n;i++){for(int j=1;j<i;j++)printf(" ");for(int k=1;k<=n-1+1;k++)printf("*");printf("\n");}return 0;
}

while循环

基本结构

定义循环变量并赋初值;

while(判断条件)

{

        语句块;

        增值或减值语句;

}

执行顺序:

首先定义循环变量并赋初值,然后判断条件是否满足,如果满足则进入循环体系并进行增值或减值语句,然后再进行判断,如果满足则再次进入循环体系直到不满足条件就退出循环,类似于for循环的第二种变形。

例如:

用while循环求1到100的和

#include <stdio.h>
#include <stdlib.h>int main(int argc,char const * argv[])
{int i=1,sum=0;while(i<=100){sum+=i;i++;}printf("%d\n",sum);return 0;
}

do…while循环

基本结构

do

{

        语句块;

        增值或减值语句;

}while(判断条件);

执行顺序:

先执行再判断。

用do…while循环求1到100的和

#include <stdio.h>
#include <stdlib.h>int main(int argc,char const * argv[])
{int i=1,sum=0;do{sum+=i;i++;}while(i<=100);printf("%d\n",sum);return 0;
}

上图中左边是do…while循环,右边是while循环

do…while和while的区别:

  1. 执行顺序不同:do…while先执行后判断,while先判断后执行。
  2. 执行次数不同:do…while至少执行一次,但是如果一开始满足判断条件则两者执行次数相同。

死循环

for(;;){}

while(1){}

while(1);

循环控制语句

break

break:直接结束循环,如果是嵌套的话是结束一层循环。

continue

continue:结束本次循环,继续下一次循环。

goto

goto:强制跳转到标签位置,可以用于多层嵌套循环(尽量不要使用goto)。

练习:

打印100-200中所有能被三整除的数

#include <stdio.h>
#include <stdlib.h>int main(int argc, char const *argv[])
{int n;for(n=100;n<=200;n++){if(n%3!=0) continue;printf("%d ",n);}printf("\n");return 0;
}

练习:

从终端上循环输入一个字符并在终端上输出 这个字符,当输入的字符为 ' q ' 时,程序结束。

#include <stdio.h>
#include <stdlib.h>
int main()
{char ch;while(1){scanf("%c",&ch);//getchar();if(ch=='\n')continue;if(ch=='q')break;printf("%c\n",ch);}return 0;
}

死循环结束场景:

使用在循环语句中,为了结束循环在使用时需要加判断条件。

练习:

循环输入一个5位数,判断是不是回文数,当输入的数是0时循环结束,输入的数是回文数循环也结束。

解析:

        12321是回文数,即个位与万位相同,十位与千位相同。

#include <stdio.h>
#include <stdlib.h>
{int n=0,g,s,b,q,w;while(1){scanf("%d",&n);g=n%10;s=n/10%10;b=n/100%10;q=n/1000%10;w=n/10000;if((g==w&&w!=0)&&q==s||n==0){printf("%d\n",n);break;}}return 0;
}

输入任意两个数,输出两个数之间(包括这两个数)各偶数之和。

解析:

        从输入的较小的数开始依次加1判断是否为偶数,直到加到较大的数为止,每次都判断当前数是否是偶数,是则累加到sum中。

#include <stdio.h>
#include <stdlib.h>
int main()
{int a,b,c,sum=0;scanf("%d %d",&a,&b);if(a>b){c=a;a=b;b=c}while(a<=b){if(a%2==0)sum+=a;a++;}printf("sum=%d\n",sum);return 0;
}

相关文章:

C语言—控制语句

控制语句就是用来实现对流程的选择、循环、转向和返回等控制行为。 分支语句 if语句 基本结构 if(表达式) { 语句块1&#xff1b; } else { 语句块2&#xff1b; } 执行顺序&#xff1a; 如果表达式判断成立&#xff08;即表达式为真&#xff09;&#xff0c;则执行语句块…...

三. TensorRT基础入门-ONNX注册算子的方法

目录 前言0. 简述1. 执行一下我们的python程序2.转换swin-tiny时候出现的不兼容op的例子3. 当出现导出onnx不成功的时候&#xff0c;我们需要考虑的事情4. unsupported asinh算子5. unsupported deformable conv算子总结参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战…...

01、什么是ip、协议、端口号知道吗?计算机网络通信的组成是什么?

声明&#xff1a;本教程不收取任何费用&#xff0c;欢迎转载&#xff0c;尊重作者劳动成果&#xff0c;不得用于商业用途&#xff0c;侵权必究&#xff01;&#xff01;&#xff01; 目录 前言 计算机网络 网络ip地址 网络协议 网络端口号 前言 最近有个项目要用到相关文章…...

答题套路2 阅读理解 说明文某个词是否能去掉

观点 回答&#xff1a;不能 解词 某个词什么意思需要解释一下 反证法 如果去掉了&#xff0c;会怎么样 总结 使用这个词体现了说明文的科学性&#xff0c;严谨性...

Pytorch图像分类模型模型实时在线验证代码

1.训练并保存自己的模型 保存的模型格式为&#xff1a;XXX.pth torch.save(model, "./weight/last.pth")if best_acc <(validation_acc / len_val):torch.save(model, "./weight/best.pth")2.转化为ONNX格式 2.1环境安装&#xff08;window10&#x…...

Java高并发场景(银行转账问题)

最近面试问到了银行转账的高并发问题&#xff0c;回答的不是很理想&#xff0c;小编整理了下&#xff0c;题目大概如下&#xff1a; 有一张银行账号表&#xff08;银行账号字段、金额字段&#xff09;&#xff0c;A账号要给B账号转账&#xff0c;A扣款&#xff0c;B收款&#x…...

TypeScript 工具类型

这些工具类型是 TypeScript 提供的强大功能&#xff0c;用于操作和转换类型。下面是每个工具类型的简要说明和示例&#xff1a; 1、Record let value: Record<string, any> { name: "", age: 0, desc: [] }; let value2: { [key: string]: any } { name: &…...

[Kotlin]创建一个私有包并使用

1.创建Kotlin测试项目 在Android Studio或其他IDE中选择“Create New Project”。选择Kotlin和Gradle作为项目类型和构建系统。指定项目名称和位置&#xff0c;完成设置。 2.创建Android Library模块 官方文档&#xff1a;创建 Android 库 | Android Studio | Android De…...

鸿蒙应用开发者高级认证指南及参考资料整理(含详细参考答案)

如何报名鸿蒙应用开发者高级认证 报名链接:点击这里进行报名。报名步骤: 点击上述链接进入报名页面。选择“立即报名”。在课程内容中找到“HarmonyOS应用开发者高级认证”,点击进入。点击“参加考试”,随后即可开始考试。考试注意事项 实名认证:考试前,请务必完成实名认…...

数据匿名化技术

不同的数据匿名化技术可用于多种行业&#xff0c;旨在从数据流中获取有用的见解&#xff0c;同时确保满足数据保护标准和法规的合规要求。 数据脱敏&#xff08;Data Masking&#xff09; 数据脱敏&#xff0c;又称数据漂白、数据去隐私化或数据变形&#xff0c;指的是对数据集…...

HTML学习笔记汇总

整理一些常见问题的Links&#xff0c;不定期更新。 Html生成自定义函数的图形&#xff08;2024/5/10&#xff09;-CSDN博客 HTML中插入图片&#xff08;2024/5/10&#xff09;-CSDN博客 Html给网页加icon图标_html icon-CSDN博客...

初始JSVMP

1.初始JSVMP JSVMP是"JavaScript Virtual Machine Protection"的缩写&#xff0c;是一种前端代码虚拟化保护技术。它的核心思想是在JavaScript代码保护过程中引入代码虚拟化&#xff0c;将目标代码转换成自定义的字节码&#xff0c;这些字节码只有特殊的解释器才能识…...

【机器学习数据可视化-04】Pyecharts数据可视化宝典

一、引言 在大数据和信息爆炸的时代&#xff0c;数据可视化成为了信息传递和展示的关键手段。通过直观的图表和图形&#xff0c;我们能够更好地理解数据&#xff0c;挖掘其背后的信息。Pyecharts&#xff0c;作为一款基于Python的数据可视化库&#xff0c;凭借其丰富的图表类型…...

通过 Java 操作 redis -- zset 有序集合基本命令

目录 使用命令 zadd&#xff0c;zrange 使用命令 zcard 使用命令 zrem 使用命令 zscore 使用命令 zrank 关于 redis zset 有序集合类型的相关命令推荐看Redis - Zset 有序集合 要想通过 Java 操作 redis&#xff0c;首先要连接上 redis 服务器&#xff0c;推荐看通过 Jav…...

力扣 516. 最长回文子序列 python AC

动态规划 class Solution:def longestPalindromeSubseq(self, s):size len(s)dp [[0] * size for _ in range(size)]for i in range(size):dp[i][i] 1for i in range(size - 1, -1, -1):for j in range(i 1, size):if s[i] s[j]:dp[i][j] dp[i 1][j - 1] 2else:dp[i][…...

数据库编程

PL/SQL程序 1.PL/SOL程序块 整个PL/SQL块分三部分&#xff1a;声明部分、执行部分、异常处理部分&#xff1b; 示例&#xff1a; declare --变量声明 v_sno varchar2(10) : ‘04001’; v_cno varchar2(10) :‘001’; v_grade number : 90; begin --程序入口 insert…...

(docker)进入容器后如何使用本机gpu

首次创建容器&#xff0c;不能直接使用本机gpu 在系统终端进行如下配置&#xff1a; 1.安装NVIDIA Container Toolkit 进入Nvidia官网Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 1.15.0 documentation&#xff0c;安装NVIDIA Container Toolkit …...

java基础知识点总结2024版(8万字超详细整理)

java基础知识点总结2024版&#xff08;超详细整理&#xff09; 这里写目录标题 java基础知识点总结2024版&#xff08;超详细整理&#xff09;java语言的特点1.简单性2.面向对象3.分布式4.健壮性5.安全性6.体系结构中立7.可移植性8.解释性9.多线程10.动态性 初识java中的main方…...

vue中使用element的i18n语言转换(保姆式教程-保证能用)

话不多说&#xff0c;先看效果:预览地址: https://sandm00.github.io/i18n-switch/#/ 1、项目中需要使用的插件&#xff0c;vue2或vue3、element、vue-i18n、js-cookie、vuex我是在vue2中使用 npm i element-ui -S npm i js-cookie -S npm i vue-i18n8.28.2 //因为我项目使用…...

01 设计模式--单例模式

1. 单例模式 单例模式有两种实现方式&#xff1a; 1.1 饿汉模式&#xff08;Eager Initialization&#xff09;&#xff1a;在类加载时就创建单例实例&#xff0c;无论是否需要使用该实例。 饿汉模式在类加载时就创建单例实例&#xff0c;无论是否需要使用该实例。 饿汉模式…...

css backdrop-filter 实现背景滤镜

官方给出的定义是&#xff1a;backdrop-filter属性允许您将图形效果&#xff08;如模糊或颜色偏移&#xff09;应用于元素后面的区域。因为它适用于元素后面的所有内容&#xff0c;所以要查看元素或其背景的效果&#xff0c;需要透明或部分透明。 大致分为以下10种&#xff1a…...

AR人脸道具SDK解决方案,实现道具与人脸的自然融合

AR人脸道具SDK解决方案&#xff0c;实现道具与人脸的自然融合美摄科技以其卓越的技术实力和创新能力&#xff0c;为企业带来了全新的AR人脸道具SDK解决方案。这一解决方案将为企业打开全新的市场机会&#xff0c;为用户带来前所未有的互动体验。 颠覆传统&#xff0c;开启AR人…...

Windows安装RabbitMQ教程(附安装包)

需要两个安装包 Erlang 安装包: https://download.csdn.net/download/Brevity6/89274663 (自己从官网下载也可以) RabbitMQ Windows 安装包&#xff1a; https://download.csdn.net/download/Brevity6/89274667 (自己从官网下载也可以) Erlang安装 Erlang安装傻瓜式下一…...

这个问题无人能解,菜鸟勿进

前言 这是陈旧已久的草稿2021-06-23 23:25:12 现在2024-5-12 21:53:46&#xff0c;发布到[逻辑题]专栏中。 一、问题 1.描述&#xff1a; 在我的世界中建个红石电路 2.需求&#xff1a; 五个灯A、B、C、D、E、F 五个开关a、b、c、d、e、f、总开关 3.要求&#xff1a; 总开关…...

揭秘高效引流获客的艺术:转化技巧大公开

在数字化营销的海洋中&#xff0c;每个企业都如同一艘努力航行的船&#xff0c;而流量便是推动船只前行的风帆。如何有效吸引并获取潜在客户&#xff0c;即所谓的“引流获客”&#xff0c;已成为企业市场营销策略中不可或缺的一环。本文将详细探讨几种实用且高效的引流获客技巧…...

【Unity 鼠标输入检测】

Unity 鼠标输入检测 Unity提供了多种方法来检测和处理鼠标输入&#xff0c;允许开发者在游戏中实现对鼠标移动、点击和滚轮滚动的响应。以下是一些基本的鼠标输入检测方法&#xff1a; 1. Input.mousePosition 这个属性返回当前鼠标指针的屏幕坐标。坐标是以像素为单位的&…...

LeetCode hot100-33-Y

148. 排序链表 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 这题能通过但是投机取巧了&#xff0c;一般应该不能这样做&#xff0c;直接把节点里的值拿出来&#xff0c;排序后再更新每个节点的值。 /*** Definition for singly-linked list.* p…...

C++和Python通信引文道路社评电商大规模行为图结构数据模型

&#x1f3af;要点 &#x1f3af;图论数学逻辑和计算&#xff1a;&#x1f58a;定向网络节点和边 | &#x1f58a;节点的入度 | &#x1f58a;出度和度 | &#x1f58a;源节点 | &#x1f58a;汇节点 | &#x1f58a; 孤立节点 | &#x1f58a;入度分布和出度分布 | &#x1f…...

单片机-点亮第一盏灯

原理图 需求&#xff1a;点亮或是熄灭LED 通过控制 P5.3引脚输出高电平时&#xff0c;LED灯就点亮&#xff0c;输出低电平时LED灯就熄灭 1.项目创建 新建项目 配置开发板信息 当前位STC芯片的开发板&#xff0c;选择STC MCU Database 搜素具体芯片型号&#xff0c;进行配置…...

C++组合类

类的数据成员不但可以是基本类型&#xff0c;也可以是其它类的对象。 组合类就是指一个类包含其他类的对象作为该类的数据成员。 当组合类创建对象时&#xff0c;其中包含的各个数据成员对象应首先被创建。因此&#xff0c;在创建类的对象时&#xff0c;既要对本类的基本…...