#include
#include
//给我300财富
void login(char *puser,char *ppw)
{
int ok=0,i,len=strlen(ppw);
if(!strpbrk(ppw,puser) && strpbrk(ppw,"0123456789") && strlen(ppw)>=8)
{
for(i=0;i
if(!isalnum(*(ppw+i)))
{
ok=1;
break;
}
}
if(ok) //1已满足长度大于等于8、不包含用户名中的任意字符、至少包含一个数字、至少包含一个非数字非字母字符
{
ok=0;
for(i=0;i
if(*(ppw+i)>='a' && *(ppw+i)<='z')
{
ok=1;
break;
}
}
if(ok) //已满足1和至少包含一个小写字母
{
ok=0;
for(i=0;i
if(*(ppw+i)>='A' && *(ppw+i)<='Z')
{
ok=1;
break;
}
}
}
}
}
if(ok)
{
printf("注册成功,欢迎登录!\n");
}
else
{
printf("密码不合要求,注册不成功!\n");
}
}
void find(int a[],int num,int len)
{
int *top,*bottom,*mid;
top=a;
bottom=&a[len-1];
mid=&a[5];
while(top<=bottom)
{
if(num<*mid)
{
bottom=mid-1;
}
else if(num>*mid)
{
top=mid+1;
}
else
{
break;
}
mid=top+(bottom-top)/2;
}
if(top<=bottom)
{
printf("找到了,%d在数组的第%d个位置。\n",num,(mid-a+1));
}
else
{
printf("%d在数组中不存在!\n",num);
}
}
int main()
{
char user[512],pw[512];
int i,num,a[10]={1,3,5,7,8,9,12,13,15,17};
printf("请输入用户名和密码(每行一个):\n");
gets(user);
gets(pw);
login(user,pw);
printf("数组的各元素是:\n");
for(i=0;i<10;i++)
{
printf("%d,",a[i]);
}
printf("\n");
do
{
printf("请输入要用折半法查找的整数(输入-1退出循环):");
scanf("%d",&num);
if(-1!=num)
{
find(a,num,10);
}
}while(-1!=num);
system("PAUSE");
return EXIT_SUCCESS;
}