新手求救

吾乃凡人 2018-08-27 04:45:32
遇到一个疑惑的地方,这是正确的代码
#include<stdio.h>
#include<string.h>
main()
{
int n,len,flag1,flag2,flag3;
scanf("%d",&n);
char a[100];getchar();//消除enter
while(n--)
{
gets(a);//有空格,不能用scanf
flag1=0;
flag2=0;
flag3=0;
len=strlen(a);
if(len<6){
printf("Your password is tai duan le.\n");
}
else {
for(int i=0;i<len;i++)
{
if(a[i]>='0'&&a[i]<='9')
flag1++;
else if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
flag2++;
else if(a[i]=='.') ;
else flag3++;
}
if(flag3)
printf("Your password is tai luan le.\n");
else if(flag1&&flag2)
printf("Your password is wan mei.\n");
else if(flag1&&!flag2)
printf("Your password needs zi mu.\n");
else if(flag2&&!flag1)
printf("Your password needs shu zi.\n");

}
}
}
然后,我只是将后面一部分更改

#include<stdio.h>
#include<string.h>
main()
{
int n,len,flag1,flag2,flag3;
scanf("%d",&n);
char a[100];getchar();//消除enter
while(n--)
{

gets(a);//有空格,不能用scanf
flag1=0;
flag2=0;
flag3=0;
len=strlen(a);
if(len<6){printf("Your password is tai duan le.\n");}
else {
for(int i=0;i<len;i++)
{if(a[i]>='0'&&a[i]<='9')
flag1=1;
else if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
flag2=1;
else if(a[i]=='.') ;
else flag3=1;
}
if(flag3==1)printf("Your password is tai luan le.\n");
else if(flag1==1&&flag2==1)printf("Your password is wan mei.\n");
else if(flag1==0&&flag2==1)printf("Your password needs zi mu.\n");
else if(flag2==1&&flag1==0)printf("Your password needs shu zi.\n");

}
}
}
然后就是显示错误了,想知道是哪里出错了,求救
...全文
240 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
吾乃凡人 2018-08-28
  • 打赏
  • 举报
回复
引用 4 楼 sghcpt 的回复:
楼主,把相应代码改为下面代码看看~~~~
if (flag3 == 1)printf("Your password is tai luan le.\n");
else if (flag1 == 1 && flag2 == 1)printf("Your password is wan mei.\n");
else if (flag1 == 1 && flag2 == 0)printf("Your password needs zi mu.\n");
else if (flag2 == 1 && flag1 == 0)printf("Your password needs shu zi.\n");
谢谢,就是这里出错了
吾乃凡人 2018-08-28
  • 打赏
  • 举报
回复
引用 5 楼 zjjone 的回复:
不好意思说反了,应该把(flag1==0&&flag2==1)修改为(flag1 == 1 && flag2 == 0)
谢谢,就是这里出错了
冷风1023 2018-08-28
  • 打赏
  • 举报
回复
不好意思说反了,应该把(flag1==0&&flag2==1)修改为(flag1 == 1 && flag2 == 0)
sghcpt 2018-08-27
  • 打赏
  • 举报
回复
楼主,把相应代码改为下面代码看看~~~~
if (flag3 == 1)printf("Your password is tai luan le.\n");
else if (flag1 == 1 && flag2 == 1)printf("Your password is wan mei.\n");
else if (flag1 == 1 && flag2 == 0)printf("Your password needs zi mu.\n");
else if (flag2 == 1 && flag1 == 0)printf("Your password needs shu zi.\n");

冷风1023 2018-08-27
  • 打赏
  • 举报
回复
(flag1==0&&flag2==1)和(flag1&&!flag2)这能一样吗?改为(!flag1&&flag2)
你这是在考大家眼力啊
半雨微凉丶 2018-08-27
  • 打赏
  • 举报
回复
else if(a[i]=='.') ; //这个括号是中文吧
半雨微凉丶 2018-08-27
  • 打赏
  • 举报
回复
什么错误提示?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧