Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
有什么要注意的啊??#include<stdio.h> #include<string.h> #include<ctype.h> #define MAX 100 char str[MAX]; int deci_exp() { int i; for(i=0;str[i];i++) if(str[i]=='.'||str[i]=='E'||str[i]=='e') return 1; return 0; } int one_on_side() { int i; for(i=0;str[i];i++) if(str[i]=='.') { if(i==0||i==(int)strlen(str)-1) return 0; else if(isdigit(str[i-1])&&isdigit(str[i+1])) return 1; else return 0; } return 1; } int sign() { int i,flag; flag=1; for(i=0;str[i]==' ';i++); if(str[i]=='+'||str[i]=='-') flag=1; for(i=0;str[i];i++) if(str[i]=='e'||str[i]=='E') { if(str[i+1]=='+'||str[i+1]=='-') flag=1; else flag=0; } return flag; } int fraction() { int i; for(i=0;str[i];) if(str[i]=='E'||str[i]=='e') { for(i++;str[i];i++) if(str[i]=='.') return 0; } else i++; return 1; } int be_e() { int i; for(i=0;str[i];i++) if(str[i]=='e'||str[i]=='E') if((isdigit(str[i-1])&&isdigit(str[i+1]))||(isdigit(str[i-1])&&(str[i+1]=='+'||str[i+1]=='-')&&isdigit(str[i+2]))) return 1; else return 0; return 1; } int space() { int i,j,k; for(i=0;str[i]==' ';i++); j=i; for(j=strlen(str)-1;str[j]==' ';j--); k=j; for(i=j;i<=k;i++) if(str[i]==' ') return 0; return 1; } char* move() { int i; for(i=0;str[i]==' ';i++); return str+i; } int cha() { int i; for(i=0;str[i];i++) if(!(str[i]=='+'||str[i]=='-'||isdigit(str[i])||str[i]=='.')) return 0; return 1; } main() { int flag; gets(str); while(strcmp("*",str)) { flag=cha()&&deci_exp()&&one_on_side()&&sign()&&space()&&be_e()&&fraction(); move(); printf("%s ",move()); if(flag) puts("is legal."); else puts("is illegal."); gets(str); } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator