急求!1急求!!用c语言实现类似网页验证码的算法。拜托啦!!!
验证码包含数字,大、小写字母,每次验证四个字符,字符随机出现,输入三次验证码错误,系统显示信息...
验证码包含数字,大、小写字母,每次验证四个字符,字符随机出现,输入三次验证码错误,系统显示信息
展开
展开全部
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
int isright()
{
int i,input,letter,flag=0;
int t[4],num,upper,lower;
char a,b,c,d;
//随机数产生
srand((unsigned)time(NULL));
for(i=0;i<4;i++)
{
input=rand()%3; //验证码可能为:数字、大写字母、小写字母
if(input==0) {num=rand()%10+48;printf("%c",num);t[i]=num;} //数字
letter=rand()%26;
if(input==1) //大写字母
{upper=letter+65;printf("%c",upper);t[i]=upper;}
if(input==2) //小写字母
{lower=letter+97;printf("%c",lower);t[i]=lower;}
}
printf(" \n");
//for(i=0;i<4;i++)
//printf("%c",t[i]);
scanf(" %c%c%c%c",&a,&b,&c,&d); //输入验证码
if(a==t[0]&&b==t[1]&&c==t[2]&&d==t[3])
printf("验证码正确\n"); //验证码匹配
else {printf("验证码错误\n");flag=1;}
return flag; //错误则返回1,正确返回0
}
main()
{
int sum=0,i,error;
for(i=0;;i++)
{
error=isright();
sum=sum+error; //统计错误次数
if(sum==3) { printf("输入次数达上限!\n"); break;} //错误3次,程序结束
}
}
更多追问追答
追问
这个要在输入三次验证码错误后,系统显示信息
追答
最后一句改成:if(sum>3) { printf("输入次数达上限!\n"); break;}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询