急求!1急求!!用c语言实现类似网页验证码的算法。拜托啦!!!

验证码包含数字,大、小写字母,每次验证四个字符,字符随机出现,输入三次验证码错误,系统显示信息... 验证码包含数字,大、小写字母,每次验证四个字符,字符随机出现,输入三次验证码错误,系统显示信息 展开
 我来答
Rankabc
2013-12-23 · TA获得超过3561个赞
知道大有可为答主
回答量:3705
采纳率:59%
帮助的人:1073万
展开全部
#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;}
cqpcy
2013-12-23 · TA获得超过658个赞
知道小有建树答主
回答量:746
采纳率:66%
帮助的人:364万
展开全部
用rand函数产生一定范围的随机数字并转化为ascii码字符,保存和显示出来,
键盘输入四个字符跟保存的比对,一致就正确,否则错误重输并记录错误次数
追问
额,我需要详细的程序设计,最好有每一步的说明,这是课程设计抽到的题目,专业严重不对口啊!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式