首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

hdu2043初学者有关问题

2012-11-18 
hdu2043菜鸟问题C/C++ code#include stdio.h#include stdlib.hint main(){int n,i,l,e,b,c,d,sumchar

hdu2043菜鸟问题

C/C++ code
#include <stdio.h>#include <stdlib.h>int main(){    int n,i,l,e,b,c,d,sum;    char a[50];//最好不要定义成正好,想想如果定义正好,有人就是16以上,没办法报错    scanf("%d",&n);    while(n--)    {        e=b=c=d=0;        scanf("%s",a);//最常用的方法,定义字符串方法        l=strlen(a);        if(l<8||l>16)            printf("NO\n");        else{            for(i=1;i<=l;i++)          {            if(a[i]=='~'||a[i]=='!'||a[i]=='@'||a[i]=='#'||a[i]=='$'||a[i]=='%'||a[i]=='^')                e=1;            if(a[i]>='A'&&a[i]<='Z')//虽然是string,但是也可以是''                b=1;            if(a[i]>='a'&&a[i]<='z')                c=1;            if(a[i]>=0&&a[i]<=9)                d=1;          }        sum=e+b+c+d;        if(sum>=3)        printf("YES\n");        else        printf("NO\n");       }    }    return 0;}

感觉没错呀,运行也没错,就是放到oj上面运行一直是wronganswer,大神帮俺看看吧,谢谢了

[解决办法]
C/C++ code
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){    int n,i,l,e,b,c,d,sum;    char a[51];//最好不要定义成正好,想想如果定义正好,有人就是16以上,没办法报错  //最好设成51,50可能越界    scanf("%d",&n);    while(n--)    {        e=b=c=d=0;        scanf("%s",a);//最常用的方法,定义字符串方法        l=strlen(a);        if(l<8||l>16)            printf("NO\n");        else{            for(i=0;i<l;i++)            {                if(a[i]>='A'&&a[i]<='Z')//虽然是string,但是也可以是''                    b=1;                else if(a[i]>='a'&&a[i]<='z')                    c=1;                else if(a[i]>='0'&&a[i]<='9')  //主要这里是'0' '9' 不是0 9                    d=1;                else                     e=1;            }            sum=e+b+c+d;            if(sum>=3)                printf("YES\n");            else                printf("NO\n");        }    }    return 0;} 

热点排行