验证码
我编了个有关验证码的程序,出现了以下一些问题
一 按空格键确定输入一个字符完成时那空格键也算了一个字符
二 当验证码输入错误时按我的意图它会再产生一组随机验证码,但没有产生
具体程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main(){
int n=0,m=0,i,a[6],d[6],p;
char x;
printf("请输入所示的验证码: \n");
printf("数字结束按空格,字母结束不按空格\n");
do{
srand(time(0));
for(i=1;i<6;i++){
a[i]=rand()/(float)32767*91;
if(a[i]<10)
if(m<3){
m++;
printf("%d ",a[i]);
}
else
i--;
else if(a[i]>64)
if(n<2){
n++;
printf("%c ",a[i]);
}
else
i--;
else
i--;
}
putch('\n');
for(i=1;i<6;i++)
if(a[i]<10)
do{
p=scanf("%d",&d[i]);
if(p==1)
break;
scanf("%c",&d[i]);
}while(1);
else{
x=getchar();
if(x>='a'&&x<='z')
d[i]=(int)x-32;
else
d[i]=(int)x;
}
for(i=1;i<6;i++){
if(a[i]==d[i])
continue;
break;
}
if(i==6)
break;
system("cls");
printf("请输入正确的验证码:");
}while(1);
printf("\ngood!");
getch();
}
高手帮下忙啊(用c语言编)