识别浮点常量问题-编译原理程序实现
来源:互联网 发布:淘宝如何设置运费险 编辑:程序博客网 时间:2024/05/22 11:30
问题
程序实现
源程序
#include <stdio.h>#include <string.h>#include <ctype.h>int getnext(int cur, char c){ switch (cur){ case 1: if (c=='+' || c=='-') return 2; if (isdigit(c)) return 3; return -1; case 2: if (isdigit(c)) return 3; return -1; case 3: if (isdigit(c)) return 3; if (c == '.') return 4; if (c=='e' || c=='E') return 6; return -1; case 4: if (isdigit(c)) return 5; return -1; case 5: if (isdigit(c)) return 5; if (c == '\0') return 0; if (c=='e' || c=='E') return 6; return -1; case 6: if (c=='+' || c=='-') return 7; if (isdigit(c)) return 8; return -1; case 7: if (isdigit(c)) return 8; return -1; case 8: if (isdigit(c)) return 8; if (c == '\0') return 0; return -1; default: return -1; }}int main(){ char s[256]; char t[256]; int i, j, k, len; int state; gets(t); len = strlen(t); i = 0; while (i<len && t[i]==' ') i++; j = len-1; while (j>=0 && t[j]==' ') j--; k = 0; for (; i<=j; i++) s[k++] = t[i]; s[k] = '\0'; state = 1; for (i=0; i<=strlen(s); i++){ state = getnext(state, s[i]); if (state == -1) break; } printf("%s\n", state==0 ? "YES" : "NO"); return 0;}
结果
0 0
- 识别浮点常量问题-编译原理程序实现
- 编译课程实验-识别浮点常量问题
- 识别浮点常量问题
- 识别浮点常量问题
- 识别浮点常量问题
- 识别浮点常量问题
- 识别浮点常量问题
- 编译课程实验-识别浮点常量问题 SDUT
- 山东理工大学ACM平台题答案关于C语言 2098 识别浮点常量问题
- 编译原理_常量定义语句语法分析
- 程序原理与语境识别
- 单片机程序编译原理
- .NET程序编译原理
- 编译原理学习:TINY语言词法扫描程序实现
- 编译原理学习笔记(二)翻译程序的实现
- 编译原理实验,实现一个代码解析程序
- 汇编实现识别闰年原理
- 【编译原理】无符号数的识别
- Swift中文教程(五)控制流
- 阻塞IO与非阻塞IO简单程序书写的基本步骤总结
- 数据库Oracle10.2.0.1.0版本在Linux RadHat Enterprise5安装的文档
- Android获取Exif信息
- 插入排序,二分插入排序,希尔排序思想与比较
- 识别浮点常量问题-编译原理程序实现
- C++ Primer学习之(4)——数组和指针
- rdlc报表使用时注意事项
- iPhone消息推送机制
- 如何保证一个类只能在堆上被创建
- Cognos技术
- Android加载大图片到内存
- leetcode16.cloneGraph
- Java 单元测试 JUnit4 快速入门