- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要一些帮助来更改有限状态机中的状态。我的状态机的结构如下:
typedef struct stateMachine {
char name;
struct stateMachine *next0;
struct stateMachine *next1;
}stateMac,*stateMac_p;
static stateMac_p current_state;
我正在考虑使用 *stateMac_p 来指向状态机的当前状态。 next0 是用户输入 0 时的当前状态,next1 是用户输入 1 时的当前状态。假设下面给出了一个示例状态表:
A B C
B C D
C D A
我已经实现了一个状态机,并使用以下代码初始化了状态:
{
int i=0;
for (i=0;i<3;i++)
fsm[i].name=i+65;
fsm[0].next0=(&(fsm[1]));
fsm[0].next1=(&(fsm[2]));
fsm[1].next0=(&(fsm[2]));
fsm[1].next1=(&(fsm[3]));
fsm[2].next0=(&(fsm[3]));
fsm[2].next1=(&(fsm[0]));
//... and so on
current_state = fsm[2].name;
}
程序执行时,首先打印当前状态并等待用户输入。我的问题是如何更改 main 中的状态?例如,如果按下 0,则应将当前状态更改为 D。或者如果按下 1,则应根据当前状态 C 和 D A 作为下一个状态将状态更改为 A。我试图按如下方式完成它,但它给了我错误。
case '0':
current_state=current_state->next0;
printf("The current state now is %c\n",current_state);
对于情况“1”依此类推。
代码可以编译,但是当按下 0 时,程序崩溃。请帮助更改状态。
最佳答案
如果我正确解释您的代码,那么我会假设以下内容:
current_state = &(fsm[2]);
。我认为您想要指向一个州,而不是一个州的名称。printf("当前状态是 %c\n",current_state->name);
。您还可以像这样定义结构并避免使用 switch 语句:
typedef struct stateMachine {
char name;
struct stateMachine *next[2];
} stateMac, *stateMac_p;
下一个状态(假设有效的输入字符c
):
current_state = current_state->next[c-48];
关于c - 需要有限状态机指导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29019020/
我有一个关于复杂性的简单问题。我在 Java 中有这段代码: pairs是 HashMap包含 Integer作为键,它的频率为 Collection作为一个值。所以: pairs = new Has
对于我的应用程序,我需要在 Coq 中使用和推理有限映射。谷歌搜索我发现 FMapAVL 似乎非常适合我的需求。问题是文档很少,我还没有弄清楚我应该如何使用它。 作为一个简单的例子,考虑以下使用对列表
我有一个主表tblAssetMaster A和一个移动表tblMovement M。 我想提取所有 Assets 及其当前位置,因此需要获取每个 Assets 的最新移动条目。 字段 A: Asset
我想让我的网站内容居中,但仅限于网页的特定宽度。所以当它超过 500px 时,我希望内容被修复,无法进一步拉伸(stretch)。无论如何都要这样做,还是我最好把所有东西都修好?希望有意义的是添加一些
我正在尝试批量删除 Backbone 模型的集合,如下所示...... collection.each(function(model, i){ model.destroy(); }); 我发现当每
我想要一个软件环境,在其中我可以在具有特定资源的硬件上测试我的软件的速度。例如,当我的主机硬件是具有 12GB RAM 的 3GHz 四核 amd64 时,该程序在具有 24 Mb RAM 的 800
在 Eclipse 中,我得到了 BigInteger.valueOf(2).pow(31093) 的值,但没有得到 BigInteger.valueOf(2).pow(31094) 的值(它是空的)
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预
我想将 2 个表从本地 sql server 2000 上传到托管的 mysql。第一个表有 17 列和 680 行,其他 10 列和 8071 行。 我首先使用 xampp mysql 尝试离线,它
我在 S3 中自动生成并保存了静态 html 文件。有时文件大小达到 2mb。是否可以使用javascript来获取html文件的一部分,显示它,当用户到达页面底部时,获取下一部分等等? 最佳答案 X
我是一名优秀的程序员,十分优秀!