新手求救
吾乃凡人 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");
}
}
}
然后就是显示错误了,想知道是哪里出错了,求救