解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<string.h>
#define H 50
void changdu(char (*m)[H],int len[],int n)
{
int i;
for(i=0;i<n;i++)
len[i]=strlen(*(m+i));
}
void panduan(int n,char (*m)[H],int len[])
{
int y,lei[4]={0};
int re[H]={0};
for(y=0;y<n;y++)
if((len[y]>=8)&&(len[y]<16))
re[y]=1;
int d,f,g,j,u,q,w,e,r,t,b,v;
for(u=0;u<n;u++)
{
for(d='a';d<='z';d++)
if(strchr(*(m+u),d))
{
lei[0]=1;
break;
}
for(f='A';f<='Z';f++)
if(strchr(*(m+u),f))
{
lei[1]=1;
break;
}
for(g='0';g<='9';g++)
if(strchr(*(m+u),g))
{
lei[2]=1;
break;
}
for(q=0;q<len[u];q++)
if(m[u][q]=='~')
{
lei[3]=1;
break;
}
for(w=0;w<len[u];w++)
if(m[u][w]=='!')
{
lei[3]=1;
break;
}
for(e=0;e<len[u];e++)
if(m[u][e]=='@')
{
lei[3]=1;
break;
}
for(r=0;r<len[u];r++)
if(m[u][r]=='#')
{
lei[3]=1;
break;
}
for(t=0;t<len[u];t++)
if(m[u][t]=='$')
{
lei[3]=1;
break;
}
for(b=0;b<len[u];b++)
if(m[u][b]=='%')
{
lei[3]=1;
break;
}
for(v=0;v<len[u];v++)
if(m[u][q]=='^')
{
lei[3]=1;
break;
}
int k=0;
for(j=0;j<4;j++)
{
if(lei[j]!=0)
k++;
}
if(re[u]==0)
printf("NO\n");
else if(k>=3)
printf("YES\n");
else
printf("NO\n");
int l;
for(l=0;l<4;l++)
lei[l]=0;
}
}
int main()
{
int n,i,len[H]={0};
char m[H][H]={"0"};
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s",m[i]);
changdu(m,len,n);
panduan(n,m,len);
return 0;
}
0.0分
0 人评分
回文串 (C语言代码)浏览:3095 |
大小写转换 (C语言代码)浏览:904 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:1432 |
C语言训练-阶乘和数* (C语言代码)-------- 呆板写法浏览:1396 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:504 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:903 |
模拟计算器 (C语言代码)浏览:2366 |
C语言训练-8除不尽的数 (C语言代码)浏览:1469 |
1162答案错误,为什么浏览:700 |
A+B for Input-Output Practice (I) (C语言代码)浏览:598 |