题意:检查输入字符串是否是浮点型。
题解:模拟= =!
View Code
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<cctype> 5 using namespace std; 6 int main() 7 { 8 int T; 9 for(scanf("%d",&T); T; T--) 10 { 11 char s[1200]; 12 scanf(" %s",s); 13 if(s[0]=='+'||s[0]=='-'||isdigit(s[0])) 14 { 15 int c1=0,c2=0; 16 int i; 17 for(i=1; s[i]!='\0'; i++) 18 { 19 if(s[i]=='.') 20 { 21 c1++; 22 if(!isdigit(s[i-1])||!isdigit(s[i+1])) 23 c1=2; 24 if(c1>1||c2>0) 25 { 26 c1=2; 27 break; 28 } 29 } 30 else if(s[i]=='E'||s[i]=='e') 31 { 32 c2++; 33 if(!isdigit(s[i-1])) 34 c2=2; 35 if(c2>1) 36 { 37 c1=2; 38 break; 39 } 40 } 41 else if(!isdigit(s[i])) 42 { 43 if(!isdigit(s[i-1])&&s[i-1]!='.'&&s[i-1]!='E'&&s[i-1]!='e') 44 { 45 c1=2; 46 break; 47 } 48 } 49 } 50 if(!isdigit(s[i-1])) 51 c1=2; 52 if(c1==2) 53 puts("ILLEGAL"); 54 else 55 puts("LEGAL"); 56 } 57 else 58 puts("ILLEGAL"); 59 } 60 return 0; 61 }