当前位置: 首页 > 工具软件 > 101 > 使用案例 >

101. IP地址

郁明诚
2023-12-01

// 本来很水的一题,却被虐了n次。。。问题竟然出在n的输入上,在这里用while(scanf("%d",&n)!=EOF)不行,一直wa。。。

#include<stdio.h>

#include<string.h>
int main()
{
    int n;
    scanf("%d",&n);
    while(n--){
        char s[20];
        scanf("%s",s);
        int L=strlen(s)-1;
        int flag=0,k=0,d=1,b[20];
        for(int i=0;i<20;i++) b[i]=-1;
        if(s[L]=='.'||s[0]=='.') flag=1;
        for(int i=L;i>=0;i--){
            if(s[i]!='.'){
                if(s[i]>'9' || s[i]<'0') {flag=1; break;}
                else{
                    if(d==1) b[k]=0;
                    b[k]+=d*(s[i]-'0');    d*=10;
                }
            }else{d=1;k++;}
        }  
        for(int i=0;i<=k;i++){
            if(b[i]>255 || b[i]<0) {flag=1;break;}           
        }
        if(k!=3) flag=1;
        if(flag==0)  printf("Yes\n");
        else printf("No\n");
    }  
    return 0;   
}
 类似资料: