杭电2043哪里错了?http://acm.hdu.edu.cn/showproblem.php?pid=2043

#include<stdio.h>
#include<string.h>
main()
{
int a,b,c,d,i,j,k,e,q,w;
char s[51];
scanf("%d",&a);
while(a)
{
b=0;c=0;d=0;k=0;e=0;
a--;
gets(s);
getchar();
for(i=0;i<strlen(s);i++)
{
if(s[i]>='A'&&s[i]<='Z')
b=1;
if(s[i]>='a'&&s[i]<='z')
c=1;
if(s[i]>=0&&s[i]<=9)
d=1;
if(s[i]==33||s[i]==126||s[i]==64||s[i]==35||s[i]==35||s[i]==37||s[i]==94)
e=1;
}
k=b+c+d+e;
if(k>=3)
printf("YES\n");
else
printf("NO\n");
}
}

#include<stdio.h>
#include<string.h>
main()
{
int a,b,c,d,i,j,k,e,q,w;
char s[51];
scanf("%d",&a);
while(a)
{
b=0;c=0;d=0;k=0;e=0;
a--;
scanf("%s",s); // 用scanf比较安全, gets难处理.
if(strlen(s)>16||strlen(s)<8) // 你忘了检测长度
{
printf("NO\n");
continue;
}
for(i=0;i<strlen(s);i++)
{
if(s[i]>='A'&&s[i]<='Z')
b=1;
if(s[i]>='a'&&s[i]<='z')
c=1;
if(s[i]>='0'&&s[i]<='9') // 0到9是字符, 不是数值
d=1;
if(s[i]=='~'||s[i]=='!'||s[i]=='@'||s[i]=='#'||s[i]=='$'||s[i]=='%'||s[i]=='^') // 如1楼建议, 不要直接ASCII
e=1;
}
k=b+c+d+e;
if(k>=3)
printf("YES\n");
else
printf("NO\n");
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-03
if(s[i]==33||s[i]==126||s[i]==64||s[i]==35||s[i]==35||s[i]==37||s[i]==94)
怎么有两个35?某个ASCII错了吧
其实没必要特意去查他们的ASCII
直接写成
if(s[i]=='~'||s[i]=='!'||s[i]=='@'||s[i]=='#'||s[i]=='$'||s[i]=='%'||s[i]=='^')
多方便,是吧~

杭电2043哪里错了?http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=2043
include<stdio.h> include<string.h> main(){ int a,b,c,d,i,j,k,e,q,w;char s[51];scanf("%d",&a);while(a){ b=0;c=0;d=0;k=0;e=0;a--;scanf("%s",s); \/\/ 用scanf比较安全, gets难处理.if(strlen(s)>16||strlen(s)<8) \/\/ 你忘了检测长度 { printf("NO\\n...

...http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=2048 怎么做的啊,求题...
这题是用错排思路做的 include<string.h> include<stdio.h> typedef __int64 lld;const lld MAX=25;double fac[MAX];double h[MAX];int main(){ lld n;lld i;h[0]=0;h[1]=0;h[2]=1;for(i=3;i<MAX;i++)h[i]=(i-1)*(h[i-1]+h[i-2]);fac[0]=1;for(i=1;i<MAX...

http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=2184 acm
include <stdio.h> include <stdlib.h> void hanoi(int a[],int b[],int c[],int n,double *m)\/*数组a[],b[],c[]分别代表三根柱子,第0个元素存放本柱子上的盘子数目,其余元素存放盘子编号,例如a[0]存放的是第一根柱子上的盘子数目。n是总盘子数目,m指针所指向的单元存放需要走的...

杭电acm1157 http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=1157
3、排序的时候你用a.length,这是一个固定值,而不是N,你这里是1000,这样就把数组中后面没用的值也参与进来排序了。

高手帮忙解决一下!是acm.tzc.edu.cn上的1004题
http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=1052 我已经帮你把TZC的那题AC了 下面是代码 include<stdio.h> include<string.h> include<stdlib.h> int cmp(const void *a,const void*b){ return *(int*)b-*(int*)a;} int n;void inti(int a[]){ int i;for(i=0;i<n;i++)sc...

求高手详细讲解http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=1003
例如:7 0 6 -1 1 -6 7 -5 分为三段7 0 6 -1 为第一段n1,1 -6 为第二段n2,7 -5为第三段n3。然后把n1,n2,n3用同样的方式分段,如此迭代,从而大大简化了数据量。最后用排列组合的方式求出最大的Sum,起始点为段的起始点。代码有时间另附。

...http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=1301 怎么改,追分_百 ...
1、添加头文件:#include<string.h> 2、修改宏定义: #define inf 0x3f3f3f3f 当然这只能保证编译通过。

...http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=1089
所以 while( scanf("%d%d",&a,&b)==2) 就是判断是不是成功读取了2个数字 当scanf()遇到End-of-File的时候会特殊的返回-1,也就是EOF 所以 while(scanf("%d%d",&a,&b)!=EOF) 就是判断是不是还没有读到EOF 在这个题目里面,两种判断都是成立的 至于你提出的 while(scanf("%d%d",&...

人见人爱A^B http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=2035
首先建议基础打好再做题 10000^3就已经超过了int范围,楼上的long10000^10也超过了,而题目要的是10000^10000,用double倒是可以,但是double的损失精度会让你的最后3位拿到的不准。所以直接做如同开玩笑一样。你上面的代码是a*b%c=(a%c)*(b%c)的一个优化形式 先给你讲朴素的做法:是用a*b%...

对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串...
} 怎么在 http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=2025上提交通不过呢?我想知道错在哪= = 展开  我来答 分享 微信扫一扫 网络繁忙请稍后重试 新浪微博 QQ空间 举报 浏览1 次 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 字符串 字母 max 搜索资料 本...

相似回答
大家正在搜