例如:下面几个数应该是符合规则的数:
3,3.51,34E3,34.5E2,34.5E+2,34.5E-2
要求:编写程序,输入一串字符,判断是不是一个无符号实数。
参考代码:
#include void main() { int states=0,error=0; char c; while(error==0 && (c=getchar())!='\\n') { switch(states) {case 0: if(c>='0' && c<='9') states=1; else error=1; break; case 1: if(c>='0' && c<='9') states=1; //这行可以省略 else if(c=='.') states=2; else if(c=='E' || c=='e') states=4; else error=1; break; case 2: if(c>='0' && c<='9') states=3; else error=1; break; case 3: if(c>='0' && c<='9') states=3; //这行可以省略 else if(c=='E' || c=='e') states=4; else error=1; break; case 4: if(c>='0' && c<='9') states=6; else if(c=='+' || c=='-') states=5; else error=1; break; case 5: if(c>='0' && c<='9') states=6; else error=1; break; case 6: if(c>='0' && c<='9') states=6; //这行可以省略 else error=1; } } if(error==0) printf("是无符号实数"); else printf("不是无符号实数"); }