当前位置:首页 » 编程软件 » C事件编程

C事件编程

发布时间: 2024-10-05 15:15:43

A. 如何用c语言实现:a,b,c三个事件,依次进行,每到a时就执行事件1,再到b,再执行事件1,再c,再事件1.

典型的状态机结构,可以去网上找找有关的资料,大概的结构像这样

enum { state_A, state_B, state_C } state = state_A;

while(1)
{
switch ( state )
{
case state_A:
if ( event_A ) // 这里也可以用switch
{
action_1(); // 在某状态下发生某事件执行某个动作,并转入下个状态
state = state_B;
}
else if ( event_B )
{

}
else
{

}
break;
case state_B:
... ...
}

}

根据你的问题补充,可以这样划分状态
准备轮询1号机,等待1号机应答(已经轮询1号机,但1号机未应答),准备轮询2号机,等待2号机应答,准备轮询3号机,等待3号机应答,
或者分成3个状态加一个标志,
轮询1号机,轮询2号机,轮询3号机,加一个有无应答标志,
其实这两种分法没有本质区别。
程序框架大概的样子是这样
switch ( state )
case 准备轮询1号机:
发送轮询1号机的命令
state = 等待1号机的应答;
break;
case 等待1号机的应答;
判断1号机的应答状态,可能是正确、错误、超时,分别处理,并设置状态
正确:
state = 准备轮询2号机
错误:
state = 准备轮询1号机,重试
超时:
state = 准备轮询1号机,重试,具体做什么可以很灵活

B. c语言问题 一辆卡车违反交通规则,撞人后逃跑。 现场有三人目击事件,但都没有记住车号 .....

#include<stdio.h>
#include <math.h>
int main(){
int i,j,k,l;
for(i=0;i<10;i++){
j=i;
for(k=0;k<10;k++){
l=k;
if(i==k){
continue;
}else{
double nums=sqrt(i*1000+j*100+k*10+l);
if((int)nums==nums){
int plateNum=(i*1000+j*100+k*10+l);
printf("车牌号是:%d\n",plateNum);
break;
}else{
continue;
}
}
}
}
return 0;
}

热点内容
php办公系统 发布:2025-07-19 03:06:35 浏览:896
奥德赛买什么配置出去改装 发布:2025-07-19 02:53:18 浏览:38
请与网络管理员联系请求访问权限 发布:2025-07-19 02:37:34 浏览:187
ipad上b站缓存视频怎么下载 发布:2025-07-19 02:32:17 浏览:842
phpcgi与phpfpm 发布:2025-07-19 02:05:19 浏览:525
捷达方向机安全登录密码是多少 发布:2025-07-19 00:57:37 浏览:690
夜魔迅雷下载ftp 发布:2025-07-19 00:39:29 浏览:97
增值税票安全接入服务器地址 发布:2025-07-19 00:20:45 浏览:484
solidworkspcb服务器地址 发布:2025-07-18 22:50:35 浏览:820
怎么在堆叠交换机里配置vlan 发布:2025-07-18 22:42:35 浏览:628